1/*
2 * L4_MABX.c
3 *
4 * Code generation for model "L4_MABX".
5 *
6 * Model version : 1.848
7 * Simulink Coder version : 8.14 (R2018a) 06-Feb-2018
8 * C source code generated on : Thu Nov 7 14:50:03 2019
9 *
10 * Target selection: rti1401.tlc
11 * Note: GRT includes extra infrastructure and instrumentation for prototyping
12 * Embedded hardware selection: Custom Processor->Custom
13 * Code generation objectives: Unspecified
14 * Validation result: Not run
15 */
16
17#include "L4_MABX_trc_ptr.h"
18#include "L4_MABX.h"
19#include "L4_MABX_private.h"
20
21/* Named constants for Chart: '<S79>/Chart' */
22#define L4_MABX_IN_Init ((uint8_T)1U)
23#define L4_MABX_IN_NO_ACTIVE_CHILD ((uint8_T)0U)
24#define L4_MABX_IN_OperatorDisabled ((uint8_T)2U)
25#define L4_MABX_IN_OperatorEnabled ((uint8_T)3U)
26
27/* Named constants for Chart: '<S205>/Relay_control_state_machine' */
28#define L4_MABX_IN_IGN_RELAY_LATCH ((uint8_T)1U)
29#define L4_MABX_IN_IGN_RELAY_UNLATCH ((uint8_T)1U)
30#define L4_MABX_IN_INITIAL ((uint8_T)1U)
31#define L4_MABX_IN_INV_RELAY_LATCH ((uint8_T)2U)
32#define L4_MABX_IN_INV_RELAY_UNLATCH ((uint8_T)2U)
33#define L4_MABX_IN_MABX_RELAY_LATCH ((uint8_T)3U)
34#define L4_MABX_IN_MABX_RELAY_UNLATCH ((uint8_T)3U)
35#define L4_MABX_IN_POWER_DOWN_ROUTINE ((uint8_T)2U)
36#define L4_MABX_IN_POWER_UP_ROUTINE ((uint8_T)3U)
37#define L4_MABX_IN_SENSOR_RELAY_LATCH ((uint8_T)4U)
38#define L4_MABX_IN_SENSOR_RELAY_UNLATCH ((uint8_T)4U)
39#define L4_MABX_IN_WAIT ((uint8_T)5U)
40
41/* Named constants for Chart: '<S276>/Chart' */
42#define L4_MABX_IN_OneLane ((uint8_T)1U)
43#define L4_MABX_IN_OneLane1 ((uint8_T)2U)
44#define L4_MABX_IN_TwoLanes ((uint8_T)3U)
45#define L4_MABX_IN_TwoLanes1 ((uint8_T)4U)
46#define L4_MABX_IN_ZeroLanes ((uint8_T)5U)
47#define L4_MABX_IN_ZeroLanes1 ((uint8_T)6U)
48#define L4_MABX_IN_init_f ((uint8_T)7U)
49
50/* Named constants for Chart: '<S729>/Health State Machine PWM Sensor 1' */
51#define L4_MABX_IN_ERROR ((uint8_T)1U)
52#define L4_MABX_IN_FAILURE_DETECTED ((uint8_T)1U)
53#define L4_MABX_IN_NO_FAILURE ((uint8_T)2U)
54#define L4_MABX_IN_PENDING ((uint8_T)2U)
55
56/* Named constants for Chart: '<S811>/Chart' */
57#define L4_MABX_IN_DiagPassed ((uint8_T)1U)
58#define L4_MABX_IN_SwitchOff ((uint8_T)2U)
59#define L4_MABX_IN_SwitchOn ((uint8_T)3U)
60#define L4_MABX_IN_init_p ((uint8_T)4U)
61
62/* Named constants for Chart: '<S825>/Chart' */
63#define L4_MABX_IN_CheckPacketCount ((uint8_T)1U)
64#define L4_MABX_IN_Init_j ((uint8_T)2U)
65#define L4_MABX_IN_InterframeDelay ((uint8_T)3U)
66#define L4_MABX_IN_InterframeDelay1 ((uint8_T)4U)
67#define L4_MABX_IN_SendTPCM ((uint8_T)5U)
68#define L4_MABX_IN_SendTPDT ((uint8_T)6U)
69#define L4_MABX_IN_StartMsg ((uint8_T)7U)
70#define L4_MABX_IN_WaitForNextPeriod ((uint8_T)8U)
71
72/* Exported block signals */
73real_T GLB_Absolute_Timestamp; /* '<S403>/Rate Transition' */
74real_T ReAX_ActualHandwheelPos; /* '<S429>/Switch' */
75real_T EthernetLinkStatus; /* '<S386>/dsa_tcpip_setup' */
76real_T CurrentAzimuth_rad; /* '<S384>/Switch' */
77real_T TargetAzimuth_rad; /* '<S384>/Switch1' */
78real_T TargetVelocity_kph; /* '<S384>/Switch3' */
79real_T Curvature; /* '<S384>/Switch4' */
80real_T CurrentVelocity_kph; /* '<S384>/Switch2' */
81real_T CrosstrackError; /* '<S384>/Switch5' */
82real_T GPS_X; /* '<S384>/Switch6' */
83real_T GPS_Y; /* '<S384>/Switch7' */
84real_T GPS_Time; /* '<S384>/Switch8' */
85real_T ReAX_EchoedSteerWheelPos; /* '<S429>/Switch' */
86real_T SteerWheelAngle; /* '<S631>/S-Function1' */
87real_T YawRate; /* '<S631>/S-Function1' */
88real_T SPN1810_LongitudinalAcceleration;/* '<S631>/S-Function1' */
89real_T WheelBasedVehicleSpeed; /* '<S492>/S-Function1' */
90real_T BrakeSwitch; /* '<S492>/S-Function1' */
91real_T Lateral_Control_Output; /* '<S274>/Sum1' */
92real_T Lateral_Control_Rate_Limiter_Output;/* '<S299>/If_Then_Else' */
93real_T SteerCommandDeg; /* '<S80>/sign1' */
94real_T DesiredSteeringAngle; /* '<S80>/sign2' */
95uint32_T DIAG_CAN1_Count_Stuff_Errors; /* '<S28>/S-Function1' */
96uint32_T DIAG_CAN1_Count_Format_Errors;/* '<S28>/S-Function1' */
97uint32_T DIAG_CAN1_Count_Ack_Errors; /* '<S28>/S-Function1' */
98uint32_T DIAG_CAN1_Count_Bit0_Errors; /* '<S28>/S-Function1' */
99uint32_T DIAG_CAN1_Count_Bit1_Errors; /* '<S28>/S-Function1' */
100uint32_T DIAG_CAN1_Count_CRC_Errors; /* '<S28>/S-Function1' */
101uint32_T DIAG_CAN1_Count_RX_Lost; /* '<S28>/S-Function1' */
102uint32_T DIAG_CAN1_Count_RX_OK; /* '<S28>/S-Function1' */
103uint32_T DIAG_CAN1_Count_TX_OK; /* '<S28>/S-Function1' */
104uint32_T DIAG_CAN5_Count_Stuff_Errors; /* '<S20>/S-Function1' */
105uint32_T DIAG_CAN5_Count_Format_Errors;/* '<S20>/S-Function1' */
106uint32_T DIAG_CAN5_Count_Ack_Errors; /* '<S20>/S-Function1' */
107uint32_T DIAG_CAN5_Count_Bit0_Errors; /* '<S20>/S-Function1' */
108uint32_T DIAG_CAN5_Count_Bit1_Errors; /* '<S20>/S-Function1' */
109uint32_T DIAG_CAN5_Count_CRC_Errors; /* '<S20>/S-Function1' */
110uint32_T DIAG_CAN5_Count_RX_Lost; /* '<S20>/S-Function1' */
111uint32_T DIAG_CAN5_Count_RX_OK; /* '<S20>/S-Function1' */
112uint32_T DIAG_CAN5_Count_TX_OK; /* '<S20>/S-Function1' */
113uint32_T DIAG_CAN6_Count_Stuff_Errors; /* '<S21>/S-Function1' */
114uint32_T DIAG_CAN6_Count_Format_Errors;/* '<S21>/S-Function1' */
115uint32_T DIAG_CAN6_Count_Ack_Errors; /* '<S21>/S-Function1' */
116uint32_T DIAG_CAN6_Count_Bit0_Errors; /* '<S21>/S-Function1' */
117uint32_T DIAG_CAN6_Count_Bit1_Errors; /* '<S21>/S-Function1' */
118uint32_T DIAG_CAN6_Count_CRC_Errors; /* '<S21>/S-Function1' */
119uint32_T DIAG_CAN6_Count_RX_Lost; /* '<S21>/S-Function1' */
120uint32_T DIAG_CAN6_Count_RX_OK; /* '<S21>/S-Function1' */
121uint32_T DIAG_CAN6_Count_TX_OK; /* '<S21>/S-Function1' */
122uint32_T DIAG_CAN3_Count_Stuff_Errors; /* '<S18>/S-Function1' */
123uint32_T DIAG_CAN3_Count_Format_Errors;/* '<S18>/S-Function1' */
124uint32_T DIAG_CAN3_Count_Ack_Errors; /* '<S18>/S-Function1' */
125uint32_T DIAG_CAN3_Count_Bit0_Errors; /* '<S18>/S-Function1' */
126uint32_T DIAG_CAN3_Count_Bit1_Errors; /* '<S18>/S-Function1' */
127uint32_T DIAG_CAN3_Count_CRC_Errors; /* '<S18>/S-Function1' */
128uint32_T DIAG_CAN3_Count_RX_Lost; /* '<S18>/S-Function1' */
129uint32_T DIAG_CAN3_Count_RX_OK; /* '<S18>/S-Function1' */
130uint32_T DIAG_CAN3_Count_TX_OK; /* '<S18>/S-Function1' */
131uint32_T DIAG_CAN4_Count_Stuff_Errors; /* '<S19>/S-Function1' */
132uint32_T DIAG_CAN4_Count_Format_Errors;/* '<S19>/S-Function1' */
133uint32_T DIAG_CAN4_Count_Ack_Errors; /* '<S19>/S-Function1' */
134uint32_T DIAG_CAN4_Count_Bit0_Errors; /* '<S19>/S-Function1' */
135uint32_T DIAG_CAN4_Count_Bit1_Errors; /* '<S19>/S-Function1' */
136uint32_T DIAG_CAN4_Count_CRC_Errors; /* '<S19>/S-Function1' */
137uint32_T DIAG_CAN4_Count_RX_Lost; /* '<S19>/S-Function1' */
138uint32_T DIAG_CAN4_Count_RX_OK; /* '<S19>/S-Function1' */
139uint32_T DIAG_CAN4_Count_TX_OK; /* '<S19>/S-Function1' */
140uint32_T DIAG_CAN2_Count_Stuff_Errors; /* '<S17>/S-Function1' */
141uint32_T DIAG_CAN2_Count_Format_Errors;/* '<S17>/S-Function1' */
142uint32_T DIAG_CAN2_Count_Ack_Errors; /* '<S17>/S-Function1' */
143uint32_T DIAG_CAN2_Count_Bit0_Errors; /* '<S17>/S-Function1' */
144uint32_T DIAG_CAN2_Count_Bit1_Errors; /* '<S17>/S-Function1' */
145uint32_T DIAG_CAN2_Count_CRC_Errors; /* '<S17>/S-Function1' */
146uint32_T DIAG_CAN2_Count_RX_Lost; /* '<S17>/S-Function1' */
147uint32_T DIAG_CAN2_Count_RX_OK; /* '<S17>/S-Function1' */
148uint32_T DIAG_CAN2_Count_TX_OK; /* '<S17>/S-Function1' */
149real32_T REAX_Handwheel_Torque; /* '<S405>/Data Type Conversion3' */
150real32_T REAX_Handwheel_Velocity; /* '<S405>/Data Type Conversion4' */
151real32_T REAX_Pull_Compensation; /* '<S405>/Data Type Conversion5' */
152ENUM_CAN_STATUS_DIAG_T DIAG_CAN1_Status;/* '<S1>/Data Type Conversion' */
153ENUM_CAN_STATUS_DIAG_T DIAG_CAN5_Status;/* '<S1>/Data Type Conversion5' */
154ENUM_CAN_STATUS_DIAG_T DIAG_CAN6_Status;/* '<S1>/Data Type Conversion4' */
155ENUM_CAN_STATUS_DIAG_T DIAG_CAN3_Status;/* '<S1>/Data Type Conversion3' */
156ENUM_CAN_STATUS_DIAG_T DIAG_CAN4_Status;/* '<S1>/Data Type Conversion2' */
157ENUM_CAN_STATUS_DIAG_T DIAG_CAN2_Status;/* '<S1>/Data Type Conversion1' */
158uint8_T SupervisorMode; /* '<S384>/Switch9' */
159uint8_T REAX_Current_Mode; /* '<S405>/Data Type Conversion' */
160uint8_T REAX_Req_Mode; /* '<S405>/Data Type Conversion1' */
161uint8_T REAX_Status; /* '<S405>/Data Type Conversion2' */
162uint8_T GLB_SWVERSION_CPV_[100]; /* '<S1057>/Constant' */
163uint8_T MABX_Mode; /* '<S76>/Switch' */
164boolean_T EStop; /* '<S402>/Logical Operator1' */
165boolean_T EnableSw; /* '<S727>/Switch' */
166boolean_T RTMapsOk; /* '<S384>/AND' */
167boolean_T EngagePB; /* '<S402>/Logical Operator' */
168boolean_T AutonomousEnabled; /* '<S76>/Autonomous Mode Switch1' */
169boolean_T AutonomousOutputEnabled; /* '<S76>/Autonomous Mode Switch' */
170boolean_T RateLimiterActive; /* '<S306>/Compare' */
171real_T Pedal_pwm_position; /* '<S731>/Switch' */
172
173/* Exported block parameters */
174real_T APTC_PEDAL_LOW_IDLE_SW_THR_APV = 3.0;/* Variable: APTC_PEDAL_LOW_IDLE_SW_THR_APV
175 * Referenced by: '<S75>/Constant'
176 */
177real_T APTC_TRQ_PED_INV_MAP_PED_POS_MPV[1328] = { 0.0, 0.3125, 0.859375, 1.15625,
178 1.59375, 1.8125, 1.921875, 2.375, 3.8125, 4.3125, 4.84375, 4.96875, 5.71875,
179 6.28125, 6.5625, 6.890625, 7.0, 7.8606557377049, 9.1229508196721,
180 10.327868852459, 11.532786885246, 14.0, 15.25748502994, 15.425149700599,
181 15.718562874251, 16.808383233533, 17.730538922156, 18.023952095808,
182 18.275449101796, 18.904191616766, 19.449101796407, 19.658682634731,
183 19.74251497006, 19.826347305389, 20.287425149701, 21.0, 21.516393442623,
184 22.290983606557, 23.409836065574, 24.758196721311, 24.959016393443,
185 25.217213114754, 26.22131147541, 26.995901639344, 27.311475409836,
186 27.454918032787, 27.512295081967, 27.684426229508, 28.0, 32.101910828025,
187 32.235668789809, 34.687898089172, 35.0, 36.734104046243, 38.815028901734,
188 42.28323699422, 42.514450867052, 44.364161849711, 51.878612716763, 55.0,
189 72.260273972603, 79.041095890411, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
190 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
191 100.0, 100.0, 100.0, 100.0, 0.0, 0.33333333333333, 0.91666666666667,
192 1.2333333333333, 1.7, 1.9333333333333, 2.05, 2.5333333333333, 4.0666666666667,
193 4.6, 5.1666666666667, 5.3, 6.1, 6.7, 7.0, 8.3738317757009, 8.8317757009346,
194 9.8130841121495, 11.252336448598, 12.626168224299, 14.0, 15.559585492228,
195 16.647668393782, 16.79274611399, 17.046632124352, 17.989637305699,
196 18.787564766839, 19.041450777202, 19.259067357513, 19.80310880829,
197 20.274611398964, 20.455958549223, 20.528497409326, 20.60103626943, 21.0,
198 21.476, 21.98, 22.736, 23.828, 25.144, 25.34, 25.592, 26.572, 27.328, 27.636,
199 27.776, 27.832, 28.0, 28.478260869565, 32.478260869565, 32.608695652174, 35.0,
200 35.777777777778, 37.444444444444, 39.444444444444, 42.777777777778, 43.0,
201 44.777777777778, 52.0, 55.0, 61.237623762376, 63.688118811881, 71.262376237624,
202 75.160891089109, 78.613861386139, 96.769801980198, 97.660891089109,
203 98.329207920792, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
204 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0, 0.57377049180328,
205 1.577868852459, 2.1229508196721, 2.9262295081967, 3.327868852459,
206 3.5286885245902, 4.3606557377049, 7.0, 7.8549618320611, 8.763358778626,
207 8.9770992366412, 10.259541984733, 11.221374045802, 11.702290076336,
208 12.263358778626, 12.450381679389, 12.851145038168, 13.43893129771, 14.0,
209 14.757731958763, 16.309278350515, 17.39175257732, 17.536082474227,
210 17.788659793814, 18.726804123711, 19.520618556701, 19.773195876289,
211 19.989690721649, 20.530927835052, 21.0, 21.132575757576, 21.185606060606,
212 21.238636363636, 21.530303030303, 21.981060606061, 22.458333333333,
213 23.174242424242, 24.208333333333, 25.454545454545, 25.640151515152,
214 25.878787878788, 26.806818181818, 27.522727272727, 27.814393939394,
215 27.94696969697, 28.0, 28.202898550725, 28.574879227053, 31.685990338164,
216 31.787439613527, 33.647342995169, 33.884057971014, 34.391304347826, 35.0,
217 36.704545454545, 36.818181818182, 37.727272727273, 41.420454545455,
218 42.954545454545, 46.136363636364, 47.386363636364, 51.25, 53.238636363636,
219 55.0, 64.249684741488, 64.703656998739, 65.044136191677, 65.895334174023,
220 75.769230769231, 79.457755359395, 82.919293820933, 84.451450189155,
221 93.417402269861, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
222 0.0, 0.92105263157895, 2.5328947368421, 3.4078947368421, 4.6973684210526,
223 5.3421052631579, 5.6644736842105, 7.0, 8.9339339339339, 9.6066066066066,
224 10.321321321321, 10.489489489489, 11.498498498498, 12.255255255255,
225 12.633633633634, 13.075075075075, 13.222222222222, 13.537537537538, 14.0,
226 14.65625, 15.3125, 16.65625, 17.59375, 17.71875, 17.9375, 18.75, 19.4375,
227 19.65625, 19.84375, 20.3125, 20.71875, 20.875, 20.9375, 21.0, 21.310483870968,
228 21.790322580645, 22.298387096774, 23.060483870968, 24.161290322581,
229 25.487903225806, 25.685483870968, 25.939516129032, 26.927419354839,
230 27.689516129032, 28.0, 28.143442622951, 28.200819672131, 28.372950819672,
231 28.688524590164, 31.327868852459, 31.41393442623, 32.991803278689,
232 33.19262295082, 33.622950819672, 34.139344262295, 35.0, 35.082474226804,
233 35.742268041237, 38.422680412371, 39.536082474227, 41.845360824742,
234 42.752577319588, 45.556701030928, 47.0, 48.278350515464, 55.0, 55.39603960396,
235 55.693069306931, 56.435643564356, 65.049504950495, 68.267326732673,
236 71.287128712871, 72.623762376238, 80.445544554455, 86.188118811881,
237 97.326732673267, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0,
238 1.2068965517241, 3.3189655172414, 4.4655172413793, 6.1551724137931, 7.0,
239 7.1412103746398, 7.7262247838617, 9.5821325648415, 10.227665706052,
240 10.913544668588, 11.07492795389, 12.043227665706, 12.769452449568,
241 13.132564841499, 13.556195965418, 13.697406340058, 14.0, 14.599221789883,
242 15.171206225681, 15.743190661479, 16.91439688716, 17.731517509728,
243 17.84046692607, 18.031128404669, 18.739299610895, 19.338521400778,
244 19.529182879377, 19.692607003891, 20.101167315175, 20.455252918288,
245 20.591439688716, 20.645914396887, 20.700389105058, 21.0, 21.526548672566,
246 22.08407079646, 22.920353982301, 24.128318584071, 25.58407079646,
247 25.800884955752, 26.079646017699, 27.163716814159, 28.0, 28.282051282051,
248 28.410256410256, 28.461538461538, 28.615384615385, 28.897435897436,
249 31.25641025641, 31.333333333333, 32.74358974359, 32.923076923077,
250 33.307692307692, 33.769230769231, 34.538461538462, 34.589743589744, 35.0,
251 36.768707482993, 37.503401360544, 39.027210884354, 39.625850340136,
252 41.47619047619, 42.428571428571, 43.272108843537, 47.707482993197,
253 47.925170068027, 48.08843537415, 48.496598639456, 53.231292517007, 55.0,
254 57.99672489083, 59.323144104803, 67.085152838428, 72.78384279476,
255 83.837336244541, 86.490174672489, 91.550218340611, 99.312227074236, 100.0,
256 100.0, 100.0, 100.0, 0.0, 1.8918918918919, 5.2027027027027, 7.0,
257 7.5340599455041, 7.8010899182561, 7.9346049046322, 8.4877384196185,
258 10.242506811989, 10.852861035422, 11.50136239782, 11.653950953678,
259 12.569482288828, 13.256130790191, 13.599455040872, 14.0, 14.185606060606,
260 14.583333333333, 15.166666666667, 15.723484848485, 16.280303030303,
261 17.420454545455, 18.215909090909, 18.32196969697, 18.507575757576,
262 19.19696969697, 19.780303030303, 19.965909090909, 20.125, 20.522727272727,
263 20.867424242424, 21.0, 21.065420560748, 21.130841121495, 21.490654205607,
264 22.046728971963, 22.635514018692, 23.518691588785, 24.794392523364,
265 26.331775700935, 26.560747663551, 26.855140186916, 28.0, 28.665492957746,
266 28.93661971831, 29.05985915493, 29.109154929577, 29.257042253521,
267 29.528169014085, 31.795774647887, 31.869718309859, 33.225352112676,
268 33.397887323944, 33.767605633803, 34.211267605634, 34.950704225352, 35.0,
269 35.381406436234, 36.930870083433, 37.574493444577, 38.909415971395,
270 39.433849821216, 41.054827175209, 41.88915375447, 42.628128724672,
271 46.513706793802, 46.704410011919, 46.847437425507, 47.205005959476,
272 51.352800953516, 52.902264600715, 54.356376638856, 55.0, 62.917594654788,
273 68.730512249443, 80.005567928731, 82.711581291759, 87.873051224944,
274 95.790645879733, 96.492204899777, 100.0, 100.0, 100.0, 0.0, 7.0,
275 7.8448275862069, 8.3034482758621, 8.9793103448276, 9.3172413793103,
276 9.4862068965517, 10.186206896552, 12.406896551724, 13.179310344828, 14.0,
277 14.157303370787, 15.101123595506, 15.808988764045, 16.162921348315,
278 16.575842696629, 16.713483146067, 17.008426966292, 17.441011235955,
279 17.85393258427, 18.266853932584, 19.112359550562, 19.702247191011,
280 19.780898876404, 19.918539325843, 20.429775280899, 20.862359550562, 21.0,
281 21.192660550459, 21.674311926606, 22.091743119266, 22.252293577982,
282 22.316513761468, 22.380733944954, 22.733944954128, 23.279816513761,
283 23.857798165138, 24.724770642202, 25.977064220183, 27.48623853211,
284 27.711009174312, 28.0, 28.910780669145, 29.613382899628, 29.899628252788,
285 30.029739776952, 30.081784386617, 30.237918215613, 30.524163568773,
286 32.918215613383, 32.996282527881, 34.42750929368, 34.609665427509, 35.0,
287 35.417633410673, 36.113689095128, 36.160092807425, 36.5313225058,
288 38.039443155452, 38.665893271462, 39.965197215777, 40.475638051044,
289 42.053364269142, 42.865429234339, 43.584686774942, 47.366589327146,
290 47.552204176334, 47.691415313225, 48.039443155452, 52.07656612529,
291 53.584686774942, 55.0, 56.296691568837, 63.884738527215, 69.455709711846,
292 80.261472785486, 82.854855923159, 87.801494130203, 95.389541088581,
293 96.061899679829, 99.423692636073, 100.0, 100.0, 0.0, 7.0, 9.378640776699,
294 10.669902912621, 12.572815533981, 13.52427184466, 14.0, 14.394941634241,
295 15.647859922179, 16.083657587549, 16.546692607004, 16.655642023346,
296 17.309338521401, 17.799610894942, 18.044747081712, 18.330739299611,
297 18.426070038911, 18.630350194553, 18.929961089494, 19.215953307393,
298 19.501945525292, 20.087548638132, 20.496108949416, 20.550583657588,
299 20.645914396887, 21.0, 21.836956521739, 22.103260869565, 22.33152173913,
300 22.902173913043, 23.396739130435, 23.586956521739, 23.663043478261,
301 23.739130434783, 24.157608695652, 24.804347826087, 25.489130434783,
302 26.516304347826, 28.0, 29.305555555556, 29.5, 29.75, 30.722222222222,
303 31.472222222222, 31.777777777778, 31.916666666667, 31.972222222222,
304 32.138888888889, 32.444444444444, 35.0, 35.073529411765, 36.421568627451,
305 36.593137254902, 36.960784313725, 37.401960784314, 38.137254901961,
306 38.186274509804, 38.578431372549, 40.171568627451, 40.833333333333,
307 42.205882352941, 42.745098039216, 44.411764705882, 45.269607843137,
308 46.029411764706, 50.024509803922, 50.220588235294, 50.367647058824,
309 50.735294117647, 55.0, 57.720930232558, 60.274418604651, 61.404651162791,
310 68.018604651163, 72.874418604651, 82.293023255814, 84.553488372093,
311 88.86511627907, 95.479069767442, 96.06511627907, 98.995348837209,
312 99.497674418605, 100.0, 0.0, 14.0, 14.419520547945, 14.647260273973,
313 14.982876712329, 15.150684931507, 15.234589041096, 15.582191780822,
314 16.684931506849, 17.068493150685, 17.47602739726, 17.571917808219,
315 18.147260273973, 18.578767123288, 18.794520547945, 19.046232876712,
316 19.130136986301, 19.309931506849, 19.573630136986, 19.825342465753,
317 20.077054794521, 20.592465753425, 20.952054794521, 21.0, 21.324503311258,
318 22.529801324503, 23.549668874172, 23.87417218543, 24.152317880795,
319 24.847682119205, 25.450331125828, 25.682119205298, 25.774834437086,
320 25.867549668874, 26.377483443709, 27.165562913907, 28.0, 28.913043478261,
321 30.231884057971, 31.821256038647, 32.057971014493, 32.36231884058,
322 33.545893719807, 34.458937198068, 34.830917874396, 35.0, 35.054200542005,
323 35.216802168022, 35.514905149051, 38.008130081301, 38.089430894309,
324 39.579945799458, 39.769647696477, 40.176151761518, 40.663956639566,
325 41.476964769648, 41.531165311653, 41.964769647696, 43.726287262873,
326 44.457994579946, 45.975609756098, 46.571815718157, 48.414634146341,
327 49.363143631436, 50.20325203252, 54.620596205962, 54.837398373984, 55.0,
328 55.583910034602, 62.357266435986, 64.887543252595, 67.262110726644,
329 68.313148788927, 74.463667820069, 78.979238754325, 87.737889273356,
330 89.839965397924, 93.849480968858, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0, 14.0,
331 14.708092485549, 15.092485549133, 15.658959537572, 15.942196531792,
332 16.083815028902, 16.670520231214, 18.531791907514, 19.179190751445,
333 19.867052023121, 20.028901734104, 21.0, 21.739002932551, 22.108504398827,
334 22.539589442815, 22.683284457478, 22.991202346041, 23.442815249267,
335 23.873900293255, 24.304985337243, 25.187683284457, 25.803519061584,
336 25.885630498534, 26.029325513196, 26.563049853372, 27.014662756598,
337 27.158357771261, 27.281524926686, 27.589442815249, 27.856304985337,
338 27.958944281525, 28.0, 28.083333333333, 28.541666666667, 29.25, 30.0, 31.125,
339 32.75, 34.708333333333, 35.0, 35.291734197731, 36.426256077796,
340 37.301458670989, 37.658022690438, 37.820097244733, 37.884927066451,
341 38.079416531605, 38.435980551053, 41.418152350081, 41.515397082658,
342 43.298217179903, 43.525121555916, 44.011345218801, 44.594813614263,
343 45.567260940032, 45.63209076175, 46.150729335494, 48.257698541329,
344 49.132901134522, 50.948136142626, 51.661264181523, 53.865478119935, 55.0,
345 56.15671641791, 62.238805970149, 62.537313432836, 62.761194029851,
346 63.320895522388, 69.813432835821, 72.238805970149, 74.514925373134,
347 75.522388059701, 81.417910447761, 85.746268656716, 94.141791044776,
348 96.15671641791, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0, 14.0,
349 16.987804878049, 18.609756097561, 21.0, 21.175942549372, 21.263913824057,
350 21.628366247756, 22.784560143627, 23.18671454219, 23.614003590664,
351 23.714542190305, 24.317773788151, 24.770197486535, 24.996409335727,
352 25.260323159785, 25.34829443447, 25.536804308797, 25.81328545781,
353 26.077199281867, 26.341113105925, 26.881508078995, 27.258527827648,
354 27.308797127469, 27.396768402154, 27.723518850987, 28.0, 28.39837398374,
355 28.739837398374, 29.593495934959, 30.333333333333, 30.617886178862,
356 30.731707317073, 30.845528455285, 31.471544715447, 32.439024390244,
357 33.463414634146, 35.0, 36.553784860558, 38.426294820717, 38.705179282869,
358 39.06374501992, 40.458167330677, 41.533864541833, 41.972111553785,
359 42.171314741036, 42.250996015936, 42.490039840637, 42.92828685259,
360 46.593625498008, 46.713147410359, 48.90438247012, 49.183266932271,
361 49.780876494024, 50.498007968127, 51.693227091633, 51.772908366534,
362 52.410358565737, 55.0, 55.966587112172, 57.971360381862, 58.758949880668,
363 61.193317422434, 62.44630071599, 63.556085918854, 69.391408114558,
364 69.677804295943, 69.892601431981, 70.429594272076, 76.658711217184,
365 78.985680190931, 81.169451073986, 82.136038186158, 87.792362768496,
366 91.945107398568, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0,
367 21.0, 21.414551607445, 21.639593908629, 21.971235194585, 22.137055837563,
368 22.219966159052, 22.56345177665, 23.653130287648, 24.032148900169,
369 24.434856175973, 24.529610829103, 25.098138747885, 25.524534686971,
370 25.737732656514, 25.986463620981, 26.06937394247, 26.24703891709,
371 26.507614213198, 26.756345177665, 27.005076142132, 27.514382402707,
372 27.869712351946, 27.917089678511, 28.0, 30.394736842105, 32.421052631579,
373 33.065789473684, 33.618421052632, 35.0, 35.668380462725, 35.925449871465,
374 36.028277634961, 36.131105398458, 36.696658097686, 37.570694087404,
375 38.496143958869, 39.884318766067, 41.889460154242, 44.305912596401,
376 44.665809768638, 45.12853470437, 46.928020565553, 48.316195372751,
377 48.881748071979, 49.13881748072, 49.241645244216, 49.550128534704,
378 50.115681233933, 54.845758354756, 55.0, 57.201957295374, 57.482206405694,
379 58.082740213523, 58.803380782918, 60.004448398577, 60.084519572954,
380 60.725088967972, 63.327402135231, 64.408362989324, 66.650355871886,
381 67.531138790036, 70.253558718861, 71.654804270463, 72.89590747331,
382 79.421708185053, 79.741992882562, 79.982206405694, 80.582740213523,
383 87.548932384342, 90.151245551601, 92.593416370107, 93.674377224199, 100.0,
384 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0, 21.0,
385 21.822147651007, 22.268456375839, 22.926174496644, 23.255033557047,
386 23.419463087248, 24.10067114094, 26.261744966443, 27.013422818792,
387 27.812080536913, 28.0, 29.191489361702, 30.085106382979, 30.531914893617,
388 31.053191489362, 31.22695035461, 31.599290780142, 32.145390070922,
389 32.666666666667, 33.187943262411, 34.255319148936, 35.0, 35.298507462687,
390 35.820895522388, 37.761194029851, 39.402985074627, 39.925373134328,
391 40.373134328358, 41.492537313433, 42.462686567164, 42.835820895522,
392 42.985074626866, 43.134328358209, 43.955223880597, 45.223880597015,
393 46.567164179104, 48.582089552239, 51.492537313433, 55.0, 55.381355932203,
394 55.871670702179, 57.778450363196, 59.249394673123, 59.848668280872,
395 60.121065375303, 60.230024213075, 60.556900726392, 61.15617433414,
396 66.168280871671, 66.331719128329, 69.32808716707, 69.709443099274,
397 70.526634382567, 71.507263922518, 73.141646489104, 73.250605326877,
398 74.122276029056, 77.663438256659, 79.134382566586, 82.185230024213,
399 83.383777239709, 87.088377723971, 88.995157384988, 90.68401937046,
400 99.56416464891, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
401 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0, 21.0, 28.0,
402 28.383285302594, 28.948126801153, 29.230547550432, 29.371757925072,
403 29.956772334294, 31.812680115274, 32.458213256484, 33.14409221902,
404 33.305475504323, 34.273775216138, 35.0, 36.333333333333, 37.888888888889,
405 38.407407407407, 39.518518518519, 41.148148148148, 42.703703703704,
406 44.259259259259, 47.444444444444, 49.666666666667, 49.962962962963,
407 50.481481481481, 52.407407407407, 54.037037037037, 54.555555555556, 55.0,
408 55.941422594142, 56.757322175732, 57.071129707113, 57.196652719665,
409 57.322175732218, 58.012552301255, 59.07949790795, 60.20920502092,
410 61.903765690377, 64.351464435146, 67.301255230126, 67.740585774059,
411 68.305439330544, 70.502092050209, 72.196652719665, 72.887029288703,
412 73.200836820084, 73.326359832636, 73.702928870293, 74.393305439331,
413 80.167364016736, 80.355648535565, 83.807531380753, 84.246861924686,
414 85.188284518828, 86.317991631799, 88.200836820084, 88.326359832636,
415 89.330543933054, 93.410041841004, 95.10460251046, 98.619246861925, 100.0,
416 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
417 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0,
418 28.0, 28.95703125, 29.4765625, 30.2421875, 30.625, 30.81640625, 31.609375,
419 34.125, 35.0, 37.098765432099, 37.592592592593, 40.555555555556,
420 42.777777777778, 43.888888888889, 45.185185185185, 45.617283950617,
421 46.543209876543, 47.901234567901, 49.197530864198, 50.493827160494,
422 53.148148148148, 55.0, 55.234680573664, 55.645371577575, 57.170795306389,
423 58.461538461538, 58.87222946545, 59.224250325945, 60.104302477184,
424 60.867014341591, 61.16036505867, 61.277705345502, 61.395045632334,
425 62.040417209909, 63.037809647979, 64.093872229465, 65.677966101695,
426 67.966101694915, 70.723598435463, 71.134289439374, 71.662320730117,
427 73.715775749674, 75.299869621904, 75.945241199478, 76.238591916558,
428 76.35593220339, 76.707953063885, 77.35332464146, 82.750977835724,
429 82.926988265971, 86.153846153846, 86.564537157757, 87.444589308996,
430 88.500651890482, 90.26075619296, 90.378096479791, 91.316818774446,
431 95.13037809648, 96.714471968709, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
432 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
433 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
434 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
435 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
436 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
437 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
438 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
439 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
440 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
441 100.0 } ; /* Variable: APTC_TRQ_PED_INV_MAP_PED_POS_MPV
442 * Referenced by: '<S85>/2D_Lookup_Table'
443 */
444
445real_T APTC_TRQ_PED_INV_MAP_TRQ_STEPS[83] = { 0.0, 20.0, 55.0, 74.0, 102.0,
446 116.0, 123.0, 152.0, 244.0, 276.0, 310.0, 318.0, 366.0, 402.0, 420.0, 441.0,
447 448.0, 463.0, 485.0, 506.0, 527.0, 570.0, 600.0, 604.0, 611.0, 637.0, 659.0,
448 666.0, 672.0, 687.0, 700.0, 705.0, 707.0, 709.0, 720.0, 737.0, 755.0, 782.0,
449 821.0, 868.0, 875.0, 884.0, 919.0, 946.0, 957.0, 962.0, 964.0, 970.0, 981.0,
450 1073.0, 1076.0, 1131.0, 1138.0, 1153.0, 1171.0, 1201.0, 1203.0, 1219.0, 1284.0,
451 1311.0, 1367.0, 1389.0, 1457.0, 1492.0, 1523.0, 1686.0, 1694.0, 1700.0, 1715.0,
452 1889.0, 1954.0, 2015.0, 2042.0, 2200.0, 2316.0, 2541.0, 2595.0, 2698.0, 2856.0,
453 2870.0, 2940.0, 2952.0, 2964.0 } ; /* Variable: APTC_TRQ_PED_INV_MAP_TRQ_STEPS
454 * Referenced by: '<S85>/2D_Lookup_Table'
455 */
456
457real_T APTC_TRQ_PED_TRQ_DATA_MPV[128] = { 0.0, 448.0, 570.0, 737.0, 981.0,
458 1138.0, 1311.0, 1457.0, 0.0, 420.0, 527.0, 720.0, 970.0, 1131.0, 1311.0,
459 1715.0, 0.0, 244.0, 506.0, 700.0, 964.0, 1171.0, 1523.0, 2316.0, 0.0, 152.0,
460 485.0, 709.0, 957.0, 1201.0, 1686.0, 2595.0, 0.0, 116.0, 463.0, 720.0, 946.0,
461 1219.0, 1954.0, 2870.0, 0.0, 74.0, 441.0, 705.0, 919.0, 1203.0, 2042.0, 2940.0,
462 0.0, 20.0, 310.0, 666.0, 884.0, 1153.0, 2015.0, 2952.0, 0.0, 20.0, 123.0,
463 637.0, 821.0, 1073.0, 1889.0, 2964.0, 0.0, 20.0, 20.0, 604.0, 755.0, 962.0,
464 1700.0, 2856.0, 0.0, 20.0, 20.0, 366.0, 707.0, 875.0, 1492.0, 2698.0, 0.0,
465 20.0, 20.0, 102.0, 659.0, 782.0, 1284.0, 2541.0, 0.0, 20.0, 20.0, 20.0, 611.0,
466 687.0, 1076.0, 2200.0, 0.0, 20.0, 20.0, 20.0, 318.0, 600.0, 868.0, 1694.0, 0.0,
467 20.0, 20.0, 20.0, 55.0, 402.0, 672.0, 1389.0, 0.0, 20.0, 20.0, 20.0, 20.0,
468 276.0, 600.0, 1367.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } ;/* Variable: APTC_TRQ_PED_TRQ_DATA_MPV
469 * Referenced by: '<S83>/2-D Lookup Table'
470 */
471
472real_T APTC_TRQ_PED_TRQ_ESPD_STEP_MPV[16] = { 500.0, 650.0, 885.0, 950.0, 1050.0,
473 1120.0, 1240.0, 1360.0, 1475.0, 1590.0, 1710.0, 1830.0, 1950.0, 2150.0, 2300.0,
474 2350.0 } ; /* Variable: APTC_TRQ_PED_TRQ_ESPD_STEP_MPV
475 * Referenced by:
476 * '<S83>/2-D Lookup Table'
477 * '<S85>/2D_Lookup_Table'
478 */
479
480real_T APTC_TRQ_PED_TRQ_POS_STEP_MPV[8] = { 0.0, 7.0, 14.0, 21.0, 28.0, 35.0,
481 55.0, 100.0 } ; /* Variable: APTC_TRQ_PED_TRQ_POS_STEP_MPV
482 * Referenced by: '<S83>/2-D Lookup Table'
483 */
484
485real_T BRK_DEM_KD_DATA_MPV[8] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } ;/* Variable: BRK_DEM_KD_DATA_MPV
486 * Referenced by: '<S143>/1D_Lookup_Table'
487 */
488
489real_T BRK_DEM_KI_DATA_MPV[8] = { -1.5, -1.5, -1.5, -1.5, -1.5, -1.5, -1.5, -1.5
490} ; /* Variable: BRK_DEM_KI_DATA_MPV
491 * Referenced by: '<S142>/1D_Lookup_Table'
492 */
493
494real_T BRK_DEM_KP_DATA_MPV[8] = { -4.0, -4.0, -4.0, -4.0, -4.0, -4.0, -4.0, -4.0
495} ; /* Variable: BRK_DEM_KP_DATA_MPV
496 * Referenced by: '<S141>/1D_Lookup_Table'
497 */
498
499real_T BRK_DEM_MASS_STEP_MPV[8] = { 0.0, 5000.0, 10000.0, 20000.0, 30000.0,
500 40000.0, 50000.0, 54000.0 } ; /* Variable: BRK_DEM_MASS_STEP_MPV
501 * Referenced by:
502 * '<S141>/1D_Lookup_Table'
503 * '<S142>/1D_Lookup_Table'
504 * '<S143>/1D_Lookup_Table'
505 */
506
507real_T BRK_GOV_FF_DECEL_RATE_DATA_MPV[32] = { 0.0, -0.39, -1.76, -3.13, -4.5,
508 -5.87, -7.24, -8.61, -9.98, -11.35, -12.72, -14.09, -15.46, -16.83, -18.2,
509 -19.57, 0.0, -0.12, -0.53, -0.94, -1.35, -1.76, -2.17, -2.58, -2.99, -3.41,
510 -3.82, -4.23, -4.64, -5.05, -5.46, -5.87 } ;/* Variable: BRK_GOV_FF_DECEL_RATE_DATA_MPV
511 * Referenced by: '<S193>/2D_Lookup_Table'
512 */
513
514real_T BRK_GOV_FF_DECEL_RATE_STEP_MPV[16] = { -19.57, -18.2, -16.83, -15.46,
515 -14.09, -12.72, -11.35, -9.98, -8.61, -7.24, -5.87, -4.5, -3.13, -1.76, -0.39,
516 0.0 } ; /* Variable: BRK_GOV_FF_DECEL_RATE_STEP_MPV
517 * Referenced by:
518 * '<S194>/2D_Lookup_Table'
519 * '<S195>/2D_Lookup_Table'
520 */
521
522real_T BRK_GOV_FF_MASS_STEP_MPV[2] = { 9035.0, 36287.0 } ;/* Variable: BRK_GOV_FF_MASS_STEP_MPV
523 * Referenced by:
524 * '<S193>/2D_Lookup_Table'
525 * '<S194>/2D_Lookup_Table'
526 * '<S195>/2D_Lookup_Table'
527 */
528
529real_T BRK_GOV_FF_PRESS_KPA_DATA_MPV[32] = { 1034.0, 965.0, 896.0, 827.0, 758.0,
530 689.0, 621.0, 552.0, 483.0, 414.0, 345.0, 276.0, 207.0, 138.0, 69.0, 0.0,
531 2585.0, 2413.0, 2240.0, 2068.0, 1895.0, 1723.0, 1553.0, 1380.0, 1208.0, 1035.0,
532 863.0, 690.0, 518.0, 345.0, 173.0, 0.0 } ;/* Variable: BRK_GOV_FF_PRESS_KPA_DATA_MPV
533 * Referenced by:
534 * '<S194>/2D_Lookup_Table'
535 * '<S195>/2D_Lookup_Table'
536 */
537
538real_T BRK_GOV_FF_PRESS_KPA_STEP_MPV[16] = { 0.0, 69.0, 138.0, 207.0, 276.0,
539 345.0, 414.0, 483.0, 552.0, 621.0, 689.0, 758.0, 827.0, 896.0, 965.0, 1034.0 }
540; /* Variable: BRK_GOV_FF_PRESS_KPA_STEP_MPV
541 * Referenced by: '<S193>/2D_Lookup_Table'
542 */
543
544real_T Curvature_FF_Gain = 5.7; /* Variable: Curvature_FF_Gain
545 * Referenced by: '<S274>/FeedforwardGain'
546 */
547real_T DISTANCE_M = 200.0; /* Variable: DISTANCE_M
548 * Referenced by: '<S81>/DISTANCE_M'
549 */
550real_T Lateral_Control_Curvature_Limit = 0.5;/* Variable: Lateral_Control_Curvature_Limit
551 * Referenced by:
552 * '<S274>/Constant3'
553 * '<S274>/Constant5'
554 */
555real_T Lateral_Control_D = 0.25; /* Variable: Lateral_Control_D
556 * Referenced by: '<S298>/Derivative Gain'
557 */
558real_T Lateral_Control_Error_Limit = 0.1;/* Variable: Lateral_Control_Error_Limit
559 * Referenced by:
560 * '<S274>/Constant'
561 * '<S274>/Constant1'
562 */
563real_T Lateral_Control_I = 0.0; /* Variable: Lateral_Control_I
564 * Referenced by: '<S298>/Integral Gain'
565 */
566real_T Lateral_Control_P = 0.3; /* Variable: Lateral_Control_P
567 * Referenced by:
568 * '<S274>/PGain'
569 * '<S298>/Proportional Gain'
570 */
571real_T Lateral_Control_Pole = 0.98; /* Variable: Lateral_Control_Pole
572 * Referenced by: '<S300>/GainPole'
573 */
574real_T Lateral_Control_YawRate_Limit = 1.0;/* Variable: Lateral_Control_YawRate_Limit
575 * Referenced by:
576 * '<S274>/Constant2'
577 * '<S274>/Constant4'
578 */
579real_T Lateral_Control_Zero = 0.99; /* Variable: Lateral_Control_Zero
580 * Referenced by: '<S300>/GainZero'
581 */
582real_T PROPB_REAX_1_E4_DESIRED_POSITION_APV = 0.0;/* Variable: PROPB_REAX_1_E4_DESIRED_POSITION_APV
583 * Referenced by: '<S960>/Constant7'
584 */
585real_T STEERCTRL_WHEEL_ANGLE_DATA_MPV[72] = { -800.02001953125, -780.02899169922,
586 -760.03399658203, -740.0, -720.0, -700.00402832031, -680.0, -660.01397705078,
587 -640.01898193359, -620.02398681641, -600.02001953125, -580.03399658203,
588 -560.03900146484, -540.0, -520.00402832031, -500.00900268555, -480.01400756836,
589 -460.01901245117, -440.02398681641, -420.01998901367, -400.03399658203,
590 -380.03900146484, -360.0, -340.00399780273, -320.00900268555, -300.01400756836,
591 -280.01901245117, -260.02398681641, -240.02900695801, -220.03399658203,
592 -200.03900146484, -180.0, -160.00399780273, -140.00900268555, -120.01399993896,
593 -100.01899719238, -80.024002075195, -60.028999328613, -40.034000396729,
594 0.52700001001358, 29.969999313354, 50.00899887085, 69.959999084473,
595 89.949996948242, 109.99500274658, 129.99000549316, 149.98500061035,
596 170.0240020752, 189.97500610352, 209.9700012207, 229.96499633789,
597 249.96000671387, 270.0, 289.99499511719, 309.98999023438, 329.98498535156,
598 349.98001098633, 369.97500610352, 390.01400756836, 410.00900268555, 450.0,
599 470.0299987793, 489.98999023438, 509.98498535156, 529.97998046875,
600 549.97497558594, 569.96997070313, 589.96502685547, 610.21997070313, 630.0,
601 650.25, 670.0 } ; /* Variable: STEERCTRL_WHEEL_ANGLE_DATA_MPV
602 * Referenced by: '<S270>/1D_Lookup_Table'
603 */
604
605real_T STEERCTRL_WHEEL_ANGLE_STEP_MPV[72] = { -46.0, -44.5, -43.0, -42.0, -40.0,
606 -39.0, -37.5, -36.5, -35.0, -34.0, -33.0, -31.5, -30.5, -29.0, -28.0, -26.5,
607 -25.5, -24.5, -23.5, -22.0, -21.0, -20.0, -19.0, -17.5, -16.5, -15.5, -14.0,
608 -13.0, -12.0, -11.0, -10.0, -8.5, -7.5, -6.5, -5.0, -4.0, -3.0, -2.0, -1.0,
609 0.0, 1.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0,
610 15.0, 16.0, 17.0, 18.5, 19.5, 20.5, 21.5, 23.5, 24.5, 25.5, 26.5, 27.5, 28.5,
611 29.0, 30.0, 31.0, 31.5, 32.5, 33.0 } ;/* Variable: STEERCTRL_WHEEL_ANGLE_STEP_MPV
612 * Referenced by: '<S270>/1D_Lookup_Table'
613 */
614
615real_T TQ_DEM_GEAR_RATIO_STEP_MPV[8] = { 0.0, 0.2, 4.0, 8.0, 10.0, 16.0, 18.0,
616 20.0 } ; /* Variable: TQ_DEM_GEAR_RATIO_STEP_MPV
617 * Referenced by:
618 * '<S235>/2D_Lookup_Table'
619 * '<S236>/2D_Lookup_Table'
620 * '<S237>/2D_Lookup_Table'
621 */
622
623real_T TQ_DEM_KD_DATA_MPV[64] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
624 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
625 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
626 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
627 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } ;/* Variable: TQ_DEM_KD_DATA_MPV
628 * Referenced by: '<S237>/2D_Lookup_Table'
629 */
630
631real_T TQ_DEM_KI_DATA_MPV[64] = { 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7,
632 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7,
633 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7,
634 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7,
635 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7 } ;/* Variable: TQ_DEM_KI_DATA_MPV
636 * Referenced by: '<S236>/2D_Lookup_Table'
637 */
638
639real_T TQ_DEM_KP_DATA_MPV[64] = { 4.0, 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
640 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
641 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
642 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
643 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0 } ;/* Variable: TQ_DEM_KP_DATA_MPV
644 * Referenced by: '<S235>/2D_Lookup_Table'
645 */
646
647real_T TQ_DEM_MASS_STEP_MPV[8] = { 0.0, 5000.0, 10000.0, 20000.0, 30000.0,
648 40000.0, 50000.0, 54000.0 } ; /* Variable: TQ_DEM_MASS_STEP_MPV
649 * Referenced by:
650 * '<S235>/2D_Lookup_Table'
651 * '<S236>/2D_Lookup_Table'
652 * '<S237>/2D_Lookup_Table'
653 */
654
655real_T UndersteerCorection = 1.5; /* Variable: UndersteerCorection
656 * Referenced by: '<S274>/UndersteerCorrection'
657 */
658real_T VSPD_TARGET_KPH_APV = 0.0; /* Variable: VSPD_TARGET_KPH_APV
659 * Referenced by: '<S81>/VSPD_TARGET_KPH_APV'
660 */
661real_T Yaw_Rate_FF_Gain = 0.15; /* Variable: Yaw_Rate_FF_Gain
662 * Referenced by: '<S274>/RateFeedbackGain'
663 */
664ENUM_AUTONOMOUS_MODE_T AUTONOMOUS_MODE_SELECTOR_APV =
665 ENUM_AUTONOMOUS_MODE_T_AUTO; /* Variable: AUTONOMOUS_MODE_SELECTOR_APV
666 * Referenced by: '<S76>/AUTONOMOUS_MODE_SELECTOR_APV'
667 */
668ENUM_CAN_RX_T CANR_PROPB_XPR_1_50_CHANNEL_APV = ENUM_CAN_RX_T_RX_CAN_3;/* Variable: CANR_PROPB_XPR_1_50_CHANNEL_APV
669 * Referenced by: '<S432>/Constant'
670 */
671ENUM_CAN_RX_T PROPB_REAX_CHANNEL_APV = ENUM_CAN_RX_T_RX_CAN_6;/* Variable: PROPB_REAX_CHANNEL_APV
672 * Referenced by:
673 * '<S430>/Constant'
674 * '<S431>/Constant'
675 * '<S452>/Constant3'
676 */
677ENUM_LONG_SPEED_DEMAND_SOURCE_T LONG_SPEED_SRC_SELECTOR_APV =
678 ENUM_LONG_SPEED_DEMAND_SOURCE_T_RW_WAYPOINTS;/* Variable: LONG_SPEED_SRC_SELECTOR_APV
679 * Referenced by:
680 * '<S80>/LONG_SPEED_SRC_SELECTOR_APV'
681 * '<S81>/LONG_SPEED_SRC_SELECTOR_APV'
682 */
683ENUM_REAX_OPERATION_MODE_T PROPB_REAX_1_E4_DESIRED_OPMODE_APV =
684 ENUM_REAX_OPERATION_MODE_T_POSITION_CTRL_MODE;/* Variable: PROPB_REAX_1_E4_DESIRED_OPMODE_APV
685 * Referenced by: '<S943>/Constant6'
686 */
687ENUM_STEERING_POS_SIGNAL_SOURCE_T PROPB_REAX_1_E4_DES_POS_SIG_SRC_APV =
688 ENUM_STEERING_POS_SIGNAL_SOURCE_T_ESTIMATION;/* Variable: PROPB_REAX_1_E4_DES_POS_SIG_SRC_APV
689 * Referenced by: '<S960>/Constant1'
690 */
691ENUM_SWITCH_T RATE_LIMITER_ENABLE_APV = ENUM_SWITCH_T_ON;/* Variable: RATE_LIMITER_ENABLE_APV
692 * Referenced by: '<S299>/RATE_LIMITER_ENABLE_APV'
693 */
694
695/* Block signals (default storage) */
696B_L4_MABX_T L4_MABX_B;
697
698/* Block states (default storage) */
699DW_L4_MABX_T L4_MABX_DW;
700
701/* Previous zero-crossings (trigger) states */
702PrevZCX_L4_MABX_T L4_MABX_PrevZCX;
703
704/* Real-time model */
705RT_MODEL_L4_MABX_T L4_MABX_M_;
706RT_MODEL_L4_MABX_T *const L4_MABX_M = &L4_MABX_M_;
707
708/* Forward declaration for local functions */
709static int32_T safe_cast_to_ENUM_XPR_CONTROL_M(int32_T input);
710static int32_T safe_cast_to_ENUM_XPR_ERROR_STA(int32_T input);
711static void L4_MABX_enter_atomic_INITIAL(void);
712static void L4_MABX_Calculate_abc(void);
713static void L4_MABX_CalculateAlternate_abc(void);
714static void L4_MABX_CalculateAcceleration34(void);
715static int32_T safe_cast_to_ENUM_CAN_STATUS_DI(int32_T input);
716
717/* Lookup Binary Search Utility BINARYSEARCH_real_T */
718void BINARYSEARCH_real_T(uint32_T *piLeft, uint32_T *piRght, real_T u, const
719 real_T *pData, uint32_T iHi)
720{
721 /* Find the location of current input value in the data table. */
722 *piLeft = 0U;
723 *piRght = iHi;
724 if (u <= pData[0] ) {
725 /* Less than or equal to the smallest point in the table. */
726 *piRght = 0U;
727 } else if (u >= pData[iHi] ) {
728 /* Greater than or equal to the largest point in the table. */
729 *piLeft = iHi;
730 } else {
731 uint32_T i;
732
733 /* Do a binary search. */
734 while (( *piRght - *piLeft ) > 1U ) {
735 /* Get the average of the left and right indices using to Floor rounding. */
736 i = (*piLeft + *piRght) >> 1;
737
738 /* Move either the right index or the left index so that */
739 /* LeftDataPoint <= CurrentValue < RightDataPoint */
740 if (u < pData[i] ) {
741 *piRght = i;
742 } else {
743 *piLeft = i;
744 }
745 }
746 }
747}
748
749/* Lookup Utility LookUp_real_T_real_T */
750void LookUp_real_T_real_T(real_T *pY, const real_T *pYData, real_T u, const
751 real_T *pUData, uint32_T iHi)
752{
753 uint32_T iLeft;
754 uint32_T iRght;
755 BINARYSEARCH_real_T( &(iLeft), &(iRght), u, pUData, iHi);
756
757 {
758 real_T lambda;
759 if (pUData[iRght] > pUData[iLeft] ) {
760 real_T num;
761 real_T den;
762 den = pUData[iRght];
763 den -= pUData[iLeft];
764 num = u;
765 num -= pUData[iLeft];
766 lambda = num / den;
767 } else {
768 lambda = 0.0;
769 }
770
771 {
772 real_T yLeftCast;
773 real_T yRghtCast;
774 yLeftCast = pYData[iLeft];
775 yRghtCast = pYData[iRght];
776 yLeftCast += lambda * ( yRghtCast - yLeftCast );
777 (*pY) = yLeftCast;
778 }
779 }
780}
781
782real_T look1_binlcapw(real_T u0, const real_T bp0[], const real_T table[],
783 uint32_T maxIndex)
784{
785 real_T y;
786 real_T frac;
787 uint32_T iRght;
788 uint32_T iLeft;
789 uint32_T bpIdx;
790
791 /* Lookup 1-D
792 Search method: 'binary'
793 Use previous index: 'off'
794 Interpolation method: 'Linear point-slope'
795 Extrapolation method: 'Clip'
796 Use last breakpoint for index at or above upper limit: 'on'
797 Remove protection against out-of-range input in generated code: 'off'
798 */
799 /* Prelookup - Index and Fraction
800 Index Search method: 'binary'
801 Extrapolation method: 'Clip'
802 Use previous index: 'off'
803 Use last breakpoint for index at or above upper limit: 'on'
804 Remove protection against out-of-range input in generated code: 'off'
805 */
806 if (u0 <= bp0[0U]) {
807 iLeft = 0U;
808 frac = 0.0;
809 } else if (u0 < bp0[maxIndex]) {
810 /* Binary Search */
811 bpIdx = maxIndex >> 1U;
812 iLeft = 0U;
813 iRght = maxIndex;
814 while (iRght - iLeft > 1U) {
815 if (u0 < bp0[bpIdx]) {
816 iRght = bpIdx;
817 } else {
818 iLeft = bpIdx;
819 }
820
821 bpIdx = (iRght + iLeft) >> 1U;
822 }
823
824 frac = (u0 - bp0[iLeft]) / (bp0[iLeft + 1U] - bp0[iLeft]);
825 } else {
826 iLeft = maxIndex;
827 frac = 0.0;
828 }
829
830 /* Interpolation 1-D
831 Interpolation method: 'Linear point-slope'
832 Use last breakpoint for index at or above upper limit: 'on'
833 Overflow mode: 'portable wrapping'
834 */
835 if (iLeft == maxIndex) {
836 y = table[iLeft];
837 } else {
838 y = (table[iLeft + 1U] - table[iLeft]) * frac + table[iLeft];
839 }
840
841 return y;
842}
843
844real_T look2_binlcapw(real_T u0, real_T u1, const real_T bp0[], const real_T
845 bp1[], const real_T table[], const uint32_T maxIndex[],
846 uint32_T stride)
847{
848 real_T y;
849 real_T frac;
850 uint32_T bpIndices[2];
851 real_T fractions[2];
852 real_T yR_1d;
853 uint32_T iRght;
854 uint32_T bpIdx;
855 uint32_T iLeft;
856
857 /* Lookup 2-D
858 Search method: 'binary'
859 Use previous index: 'off'
860 Interpolation method: 'Linear point-slope'
861 Extrapolation method: 'Clip'
862 Use last breakpoint for index at or above upper limit: 'on'
863 Remove protection against out-of-range input in generated code: 'off'
864 */
865 /* Prelookup - Index and Fraction
866 Index Search method: 'binary'
867 Extrapolation method: 'Clip'
868 Use previous index: 'off'
869 Use last breakpoint for index at or above upper limit: 'on'
870 Remove protection against out-of-range input in generated code: 'off'
871 */
872 if (u0 <= bp0[0U]) {
873 iLeft = 0U;
874 frac = 0.0;
875 } else if (u0 < bp0[maxIndex[0U]]) {
876 /* Binary Search */
877 bpIdx = maxIndex[0U] >> 1U;
878 iLeft = 0U;
879 iRght = maxIndex[0U];
880 while (iRght - iLeft > 1U) {
881 if (u0 < bp0[bpIdx]) {
882 iRght = bpIdx;
883 } else {
884 iLeft = bpIdx;
885 }
886
887 bpIdx = (iRght + iLeft) >> 1U;
888 }
889
890 frac = (u0 - bp0[iLeft]) / (bp0[iLeft + 1U] - bp0[iLeft]);
891 } else {
892 iLeft = maxIndex[0U];
893 frac = 0.0;
894 }
895
896 fractions[0U] = frac;
897 bpIndices[0U] = iLeft;
898
899 /* Prelookup - Index and Fraction
900 Index Search method: 'binary'
901 Extrapolation method: 'Clip'
902 Use previous index: 'off'
903 Use last breakpoint for index at or above upper limit: 'on'
904 Remove protection against out-of-range input in generated code: 'off'
905 */
906 if (u1 <= bp1[0U]) {
907 iLeft = 0U;
908 frac = 0.0;
909 } else if (u1 < bp1[maxIndex[1U]]) {
910 /* Binary Search */
911 bpIdx = maxIndex[1U] >> 1U;
912 iLeft = 0U;
913 iRght = maxIndex[1U];
914 while (iRght - iLeft > 1U) {
915 if (u1 < bp1[bpIdx]) {
916 iRght = bpIdx;
917 } else {
918 iLeft = bpIdx;
919 }
920
921 bpIdx = (iRght + iLeft) >> 1U;
922 }
923
924 frac = (u1 - bp1[iLeft]) / (bp1[iLeft + 1U] - bp1[iLeft]);
925 } else {
926 iLeft = maxIndex[1U];
927 frac = 0.0;
928 }
929
930 /* Interpolation 2-D
931 Interpolation method: 'Linear point-slope'
932 Use last breakpoint for index at or above upper limit: 'on'
933 Overflow mode: 'portable wrapping'
934 */
935 bpIdx = iLeft * stride + bpIndices[0U];
936 if (bpIndices[0U] == maxIndex[0U]) {
937 y = table[bpIdx];
938 } else {
939 y = (table[bpIdx + 1U] - table[bpIdx]) * fractions[0U] + table[bpIdx];
940 }
941
942 if (iLeft == maxIndex[1U]) {
943 } else {
944 bpIdx += stride;
945 if (bpIndices[0U] == maxIndex[0U]) {
946 yR_1d = table[bpIdx];
947 } else {
948 yR_1d = (table[bpIdx + 1U] - table[bpIdx]) * fractions[0U] + table[bpIdx];
949 }
950
951 y += (yR_1d - y) * frac;
952 }
953
954 return y;
955}
956
957real_T look1_binlxpw(real_T u0, const real_T bp0[], const real_T table[],
958 uint32_T maxIndex)
959{
960 real_T frac;
961 uint32_T iRght;
962 uint32_T iLeft;
963 uint32_T bpIdx;
964
965 /* Lookup 1-D
966 Search method: 'binary'
967 Use previous index: 'off'
968 Interpolation method: 'Linear point-slope'
969 Extrapolation method: 'Linear'
970 Use last breakpoint for index at or above upper limit: 'off'
971 Remove protection against out-of-range input in generated code: 'off'
972 */
973 /* Prelookup - Index and Fraction
974 Index Search method: 'binary'
975 Extrapolation method: 'Linear'
976 Use previous index: 'off'
977 Use last breakpoint for index at or above upper limit: 'off'
978 Remove protection against out-of-range input in generated code: 'off'
979 */
980 if (u0 <= bp0[0U]) {
981 iLeft = 0U;
982 frac = (u0 - bp0[0U]) / (bp0[1U] - bp0[0U]);
983 } else if (u0 < bp0[maxIndex]) {
984 /* Binary Search */
985 bpIdx = maxIndex >> 1U;
986 iLeft = 0U;
987 iRght = maxIndex;
988 while (iRght - iLeft > 1U) {
989 if (u0 < bp0[bpIdx]) {
990 iRght = bpIdx;
991 } else {
992 iLeft = bpIdx;
993 }
994
995 bpIdx = (iRght + iLeft) >> 1U;
996 }
997
998 frac = (u0 - bp0[iLeft]) / (bp0[iLeft + 1U] - bp0[iLeft]);
999 } else {
1000 iLeft = maxIndex - 1U;
1001 frac = (u0 - bp0[maxIndex - 1U]) / (bp0[maxIndex] - bp0[maxIndex - 1U]);
1002 }
1003
1004 /* Interpolation 1-D
1005 Interpolation method: 'Linear point-slope'
1006 Use last breakpoint for index at or above upper limit: 'off'
1007 Overflow mode: 'portable wrapping'
1008 */
1009 return (table[iLeft + 1U] - table[iLeft]) * frac + table[iLeft];
1010}
1011
1012/*
1013 * Output and update for atomic system:
1014 * '<S82>/If_Then_Else'
1015 * '<S83>/If_Then_Else'
1016 * '<S83>/If_Then_Else1'
1017 * '<S89>/If_Then_Else'
1018 * '<S89>/If_Then_Else1'
1019 * '<S90>/If_Then_Else'
1020 * '<S90>/If_Then_Else1'
1021 * '<S115>/If_Then_Else'
1022 * '<S118>/If_Then_Else'
1023 * '<S120>/If_Then_Else'
1024 * ...
1025 */
1026void L4_MABX_If_Then_Else(boolean_T rtu_If, real_T rtu_Then, real_T rtu_Else,
1027 B_If_Then_Else_L4_MABX_T *localB)
1028{
1029 /* Switch: '<S86>/Switch' */
1030 if (rtu_If) {
1031 localB->Switch = rtu_Then;
1032 } else {
1033 localB->Switch = rtu_Else;
1034 }
1035
1036 /* End of Switch: '<S86>/Switch' */
1037}
1038
1039/*
1040 * System initialize for enable system:
1041 * '<S106>/Calculate_D_term'
1042 * '<S144>/Calculate_D_term'
1043 * '<S238>/Calculate_D_term'
1044 */
1045void L4_MA_Calculate_D_term_Init(B_Calculate_D_term_L4_MABX_T *localB,
1046 DW_Calculate_D_term_L4_MABX_T *localDW, P_Calculate_D_term_L4_MABX_T *localP)
1047{
1048 /* InitializeConditions for UnitDelay: '<S115>/Unit_Delay1' */
1049 localDW->Unit_Delay1_DSTATE = localP->Unit_Delay1_InitialCondition;
1050
1051 /* InitializeConditions for UnitDelay: '<S115>/Unit_Delay2' */
1052 localDW->Unit_Delay2_DSTATE = localP->Unit_Delay2_InitialCondition;
1053
1054 /* InitializeConditions for UnitDelay: '<S116>/FixPt Unit Delay2' */
1055 localDW->FixPtUnitDelay2_DSTATE = localP->FixPtUnitDelay2_InitialConditio;
1056
1057 /* InitializeConditions for UnitDelay: '<S116>/FixPt Unit Delay1' */
1058 localDW->FixPtUnitDelay1_DSTATE = localP->FixPtUnitDelay1_InitialConditio;
1059
1060 /* SystemInitialize for Outport: '<S110>/GPID_d_term' */
1061 localB->Subtract = localP->GPID_d_term_Y0;
1062}
1063
1064/*
1065 * System reset for enable system:
1066 * '<S106>/Calculate_D_term'
1067 * '<S144>/Calculate_D_term'
1068 * '<S238>/Calculate_D_term'
1069 */
1070void L4_M_Calculate_D_term_Reset(DW_Calculate_D_term_L4_MABX_T *localDW,
1071 P_Calculate_D_term_L4_MABX_T *localP)
1072{
1073 /* InitializeConditions for UnitDelay: '<S115>/Unit_Delay1' */
1074 localDW->Unit_Delay1_DSTATE = localP->Unit_Delay1_InitialCondition;
1075
1076 /* InitializeConditions for UnitDelay: '<S115>/Unit_Delay2' */
1077 localDW->Unit_Delay2_DSTATE = localP->Unit_Delay2_InitialCondition;
1078
1079 /* InitializeConditions for UnitDelay: '<S116>/FixPt Unit Delay2' */
1080 localDW->FixPtUnitDelay2_DSTATE = localP->FixPtUnitDelay2_InitialConditio;
1081
1082 /* InitializeConditions for UnitDelay: '<S116>/FixPt Unit Delay1' */
1083 localDW->FixPtUnitDelay1_DSTATE = localP->FixPtUnitDelay1_InitialConditio;
1084}
1085
1086/*
1087 * Disable for enable system:
1088 * '<S106>/Calculate_D_term'
1089 * '<S144>/Calculate_D_term'
1090 * '<S238>/Calculate_D_term'
1091 */
1092void L4_Calculate_D_term_Disable(B_Calculate_D_term_L4_MABX_T *localB,
1093 DW_Calculate_D_term_L4_MABX_T *localDW, P_Calculate_D_term_L4_MABX_T *localP)
1094{
1095 /* Disable for Outport: '<S110>/GPID_d_term' */
1096 localB->Subtract = localP->GPID_d_term_Y0;
1097 localDW->Calculate_D_term_MODE = false;
1098}
1099
1100/*
1101 * Start for enable system:
1102 * '<S106>/Calculate_D_term'
1103 * '<S144>/Calculate_D_term'
1104 * '<S238>/Calculate_D_term'
1105 */
1106void L4_M_Calculate_D_term_Start(DW_Calculate_D_term_L4_MABX_T *localDW)
1107{
1108 localDW->Calculate_D_term_MODE = false;
1109}
1110
1111/*
1112 * Outputs for enable system:
1113 * '<S106>/Calculate_D_term'
1114 * '<S144>/Calculate_D_term'
1115 * '<S238>/Calculate_D_term'
1116 */
1117void L4_MABX_Calculate_D_term(boolean_T rtu_Enable, real_T rtu_GPID_Kd, real_T
1118 rtu_GPID_dT, boolean_T rtu_F_GPID_reset_gov, real_T rtu_GPID_control_error,
1119 real_T rtu_GPID_T_filt_d, B_Calculate_D_term_L4_MABX_T *localB,
1120 DW_Calculate_D_term_L4_MABX_T *localDW, P_Calculate_D_term_L4_MABX_T *localP)
1121{
1122 real_T maxV;
1123 real_T u1;
1124 real_T u2;
1125
1126 /* Outputs for Enabled SubSystem: '<S106>/Calculate_D_term' incorporates:
1127 * EnablePort: '<S110>/Enable'
1128 */
1129 if (rtu_Enable) {
1130 if (!localDW->Calculate_D_term_MODE) {
1131 L4_M_Calculate_D_term_Reset(localDW, localP);
1132 localDW->Calculate_D_term_MODE = true;
1133 }
1134
1135 /* UnitDelay: '<S115>/Unit_Delay1' */
1136 localB->Unit_Delay1 = localDW->Unit_Delay1_DSTATE;
1137
1138 /* Logic: '<S115>/Logical Operator' */
1139 localB->LogicalOperator = (rtu_F_GPID_reset_gov || localB->Unit_Delay1);
1140
1141 /* MinMax: '<S115>/MinMax1' */
1142 if ((rtu_GPID_dT > rtu_GPID_T_filt_d) || rtIsNaN(rtu_GPID_T_filt_d)) {
1143 maxV = rtu_GPID_dT;
1144 } else {
1145 maxV = rtu_GPID_T_filt_d;
1146 }
1147
1148 localB->MinMax1 = maxV;
1149
1150 /* End of MinMax: '<S115>/MinMax1' */
1151
1152 /* Saturate: '<S115>/Saturation' */
1153 maxV = localB->MinMax1;
1154 u1 = localP->Saturation_LowerSat;
1155 u2 = localP->Saturation_UpperSat;
1156 if (maxV > u2) {
1157 localB->Saturation = u2;
1158 } else if (maxV < u1) {
1159 localB->Saturation = u1;
1160 } else {
1161 localB->Saturation = maxV;
1162 }
1163
1164 /* End of Saturate: '<S115>/Saturation' */
1165
1166 /* Product: '<S115>/Divide' */
1167 localB->Divide = rtu_GPID_dT / localB->Saturation;
1168
1169 /* Product: '<S115>/Product2' */
1170 localB->Product2 = rtu_GPID_control_error * localB->Divide;
1171
1172 /* Sum: '<S115>/Subtract1' incorporates:
1173 * Constant: '<S115>/Constant1'
1174 */
1175 localB->Subtract1 = localP->Constant1_Value - localB->Divide;
1176
1177 /* UnitDelay: '<S115>/Unit_Delay2' */
1178 localB->Unit_Delay2 = localDW->Unit_Delay2_DSTATE;
1179
1180 /* Product: '<S115>/Product1' */
1181 localB->Product1 = localB->Subtract1 * localB->Unit_Delay2;
1182
1183 /* Sum: '<S115>/Add1' */
1184 localB->Add1 = localB->Product2 + localB->Product1;
1185
1186 /* Outputs for Atomic SubSystem: '<S115>/If_Then_Else' */
1187 L4_MABX_If_Then_Else(localB->LogicalOperator, rtu_GPID_control_error,
1188 localB->Add1, &localB->If_Then_Else);
1189
1190 /* End of Outputs for SubSystem: '<S115>/If_Then_Else' */
1191
1192 /* Product: '<S110>/Divide' */
1193 localB->Divide_k = localB->If_Then_Else.Switch / rtu_GPID_dT * rtu_GPID_Kd;
1194
1195 /* UnitDelay: '<S116>/FixPt Unit Delay2' */
1196 localB->FixPtUnitDelay2 = localDW->FixPtUnitDelay2_DSTATE;
1197
1198 /* Logic: '<S116>/FixPt Logical Operator' */
1199 localB->FixPtLogicalOperator = (uint8_T)(rtu_F_GPID_reset_gov ||
1200 (localB->FixPtUnitDelay2 != 0));
1201
1202 /* UnitDelay: '<S116>/FixPt Unit Delay1' */
1203 localB->Xold = localDW->FixPtUnitDelay1_DSTATE;
1204
1205 /* Switch: '<S116>/Init' */
1206 if (localB->FixPtLogicalOperator != 0) {
1207 localB->Init = localB->Divide_k;
1208 } else {
1209 localB->Init = localB->Xold;
1210 }
1211
1212 /* End of Switch: '<S116>/Init' */
1213
1214 /* Sum: '<S110>/Subtract' */
1215 localB->Subtract = localB->Divide_k - localB->Init;
1216
1217 /* Switch: '<S116>/Reset' */
1218 localB->Xnew = localB->Divide_k;
1219 } else {
1220 if (localDW->Calculate_D_term_MODE) {
1221 L4_Calculate_D_term_Disable(localB, localDW, localP);
1222 }
1223 }
1224
1225 /* End of Outputs for SubSystem: '<S106>/Calculate_D_term' */
1226}
1227
1228/*
1229 * Update for enable system:
1230 * '<S106>/Calculate_D_term'
1231 * '<S144>/Calculate_D_term'
1232 * '<S238>/Calculate_D_term'
1233 */
1234void L4__Calculate_D_term_Update(B_Calculate_D_term_L4_MABX_T *localB,
1235 DW_Calculate_D_term_L4_MABX_T *localDW, P_Calculate_D_term_L4_MABX_T *localP)
1236{
1237 /* Update for Enabled SubSystem: '<S106>/Calculate_D_term' incorporates:
1238 * EnablePort: '<S110>/Enable'
1239 */
1240 if (localDW->Calculate_D_term_MODE) {
1241 /* Update for UnitDelay: '<S115>/Unit_Delay1' incorporates:
1242 * Constant: '<S115>/Constant'
1243 */
1244 localDW->Unit_Delay1_DSTATE = localP->Constant_Value;
1245
1246 /* Update for UnitDelay: '<S115>/Unit_Delay2' */
1247 localDW->Unit_Delay2_DSTATE = localB->If_Then_Else.Switch;
1248
1249 /* Update for UnitDelay: '<S116>/FixPt Unit Delay2' incorporates:
1250 * Constant: '<S116>/FixPt Constant'
1251 */
1252 localDW->FixPtUnitDelay2_DSTATE = localP->FixPtConstant_Value;
1253
1254 /* Update for UnitDelay: '<S116>/FixPt Unit Delay1' */
1255 localDW->FixPtUnitDelay1_DSTATE = localB->Xnew;
1256 }
1257
1258 /* End of Update for SubSystem: '<S106>/Calculate_D_term' */
1259}
1260
1261/*
1262 * Output and update for atomic system:
1263 * '<S120>/If_Then_Else3'
1264 * '<S158>/If_Then_Else3'
1265 * '<S252>/If_Then_Else3'
1266 * '<S452>/If_Then_Else'
1267 * '<S1043>/If_Then_Else'
1268 */
1269void L4_MABX_If_Then_Else3(boolean_T rtu_If, boolean_T rtu_Then, boolean_T
1270 rtu_Else, B_If_Then_Else_L4_MABX_c_T *localB)
1271{
1272 /* Switch: '<S128>/Switch' */
1273 if (rtu_If) {
1274 localB->Switch = rtu_Then;
1275 } else {
1276 localB->Switch = rtu_Else;
1277 }
1278
1279 /* End of Switch: '<S128>/Switch' */
1280}
1281
1282/*
1283 * System initialize for enable system:
1284 * '<S106>/Calculate_I_term'
1285 * '<S144>/Calculate_I_term'
1286 * '<S238>/Calculate_I_term'
1287 */
1288void L4_MA_Calculate_I_term_Init(B_Calculate_I_term_L4_MABX_T *localB,
1289 DW_Calculate_I_term_L4_MABX_T *localDW, P_Calculate_I_term_L4_MABX_T *localP)
1290{
1291 /* InitializeConditions for UnitDelay: '<S122>/FixPt Unit Delay2' */
1292 localDW->FixPtUnitDelay2_DSTATE = localP->FixPtUnitDelay2_InitialConditio;
1293
1294 /* InitializeConditions for UnitDelay: '<S122>/FixPt Unit Delay1' */
1295 localDW->FixPtUnitDelay1_DSTATE = localP->FixPtUnitDelay1_InitialConditio;
1296
1297 /* InitializeConditions for UnitDelay: '<S111>/Unit_Delay' */
1298 localDW->Unit_Delay_DSTATE = localP->Unit_Delay_InitialCondition;
1299
1300 /* SystemInitialize for Enabled SubSystem: '<S111>/Initialize_integral_term' */
1301 /* SystemInitialize for Outport: '<S119>/GPID_i_sum_error_init' */
1302 localB->Subtract2 = localP->GPID_i_sum_error_init_Y0;
1303
1304 /* End of SystemInitialize for SubSystem: '<S111>/Initialize_integral_term' */
1305
1306 /* SystemInitialize for Outport: '<S111>/GPID_i_term' */
1307 localB->If_Then_Else.Switch = localP->GPID_i_term_Y0;
1308
1309 /* SystemInitialize for Outport: '<S111>/F_GPID_hold_i_term' */
1310 localB->LogicalOperator2 = localP->F_GPID_hold_i_term_Y0;
1311}
1312
1313/*
1314 * System reset for enable system:
1315 * '<S106>/Calculate_I_term'
1316 * '<S144>/Calculate_I_term'
1317 * '<S238>/Calculate_I_term'
1318 */
1319void L4_M_Calculate_I_term_Reset(DW_Calculate_I_term_L4_MABX_T *localDW,
1320 P_Calculate_I_term_L4_MABX_T *localP)
1321{
1322 /* InitializeConditions for UnitDelay: '<S122>/FixPt Unit Delay2' */
1323 localDW->FixPtUnitDelay2_DSTATE = localP->FixPtUnitDelay2_InitialConditio;
1324
1325 /* InitializeConditions for UnitDelay: '<S122>/FixPt Unit Delay1' */
1326 localDW->FixPtUnitDelay1_DSTATE = localP->FixPtUnitDelay1_InitialConditio;
1327
1328 /* InitializeConditions for UnitDelay: '<S111>/Unit_Delay' */
1329 localDW->Unit_Delay_DSTATE = localP->Unit_Delay_InitialCondition;
1330}
1331
1332/*
1333 * Disable for enable system:
1334 * '<S106>/Calculate_I_term'
1335 * '<S144>/Calculate_I_term'
1336 * '<S238>/Calculate_I_term'
1337 */
1338void L4_Calculate_I_term_Disable(B_Calculate_I_term_L4_MABX_T *localB,
1339 DW_Calculate_I_term_L4_MABX_T *localDW, P_Calculate_I_term_L4_MABX_T *localP)
1340{
1341 /* Disable for Outport: '<S111>/GPID_i_term' */
1342 localB->If_Then_Else.Switch = localP->GPID_i_term_Y0;
1343
1344 /* Disable for Outport: '<S111>/F_GPID_hold_i_term' */
1345 localB->LogicalOperator2 = localP->F_GPID_hold_i_term_Y0;
1346 localDW->Calculate_I_term_MODE = false;
1347}
1348
1349/*
1350 * Start for enable system:
1351 * '<S106>/Calculate_I_term'
1352 * '<S144>/Calculate_I_term'
1353 * '<S238>/Calculate_I_term'
1354 */
1355void L4_M_Calculate_I_term_Start(DW_Calculate_I_term_L4_MABX_T *localDW)
1356{
1357 localDW->Calculate_I_term_MODE = false;
1358}
1359
1360/*
1361 * Outputs for enable system:
1362 * '<S106>/Calculate_I_term'
1363 * '<S144>/Calculate_I_term'
1364 * '<S238>/Calculate_I_term'
1365 */
1366void L4_MABX_Calculate_I_term(boolean_T rtu_Enable, real_T rtu_GPID_p_term,
1367 real_T rtu_GPID_Ki, real_T rtu_GPID_actual_system_output, real_T
1368 rtu_GPID_control_error, boolean_T rtu_F_GPID_reset_gov, real_T rtu_GPID_dT,
1369 real_T rtu_GPID_feed_forward, boolean_T rtu_F_GPID_aw_cond_integration, real_T
1370 rtu_GPID_aw_hysteresis, boolean_T rtu_F_GPID_aw_hold_i_term, real_T
1371 rtu_GPID_output_unlim_prev, B_Calculate_I_term_L4_MABX_T *localB,
1372 DW_Calculate_I_term_L4_MABX_T *localDW, P_Calculate_I_term_L4_MABX_T *localP)
1373{
1374 /* Outputs for Enabled SubSystem: '<S106>/Calculate_I_term' incorporates:
1375 * EnablePort: '<S111>/Enable'
1376 */
1377 if (rtu_Enable) {
1378 if (!localDW->Calculate_I_term_MODE) {
1379 L4_M_Calculate_I_term_Reset(localDW, localP);
1380 localDW->Calculate_I_term_MODE = true;
1381 }
1382
1383 /* Outputs for Enabled SubSystem: '<S111>/Initialize_integral_term' incorporates:
1384 * EnablePort: '<S119>/Enable'
1385 */
1386 if (rtu_F_GPID_reset_gov) {
1387 /* Product: '<S119>/Product' */
1388 localB->Product_j = rtu_GPID_Ki * rtu_GPID_dT * rtu_GPID_control_error;
1389
1390 /* Sum: '<S119>/Subtract' */
1391 localB->Subtract_g = rtu_GPID_actual_system_output - rtu_GPID_feed_forward;
1392
1393 /* Sum: '<S119>/Subtract1' */
1394 localB->Subtract1_k = localB->Subtract_g - rtu_GPID_p_term;
1395
1396 /* Sum: '<S119>/Subtract2' */
1397 localB->Subtract2 = localB->Subtract1_k - localB->Product_j;
1398 }
1399
1400 /* End of Outputs for SubSystem: '<S111>/Initialize_integral_term' */
1401
1402 /* UnitDelay: '<S122>/FixPt Unit Delay2' */
1403 localB->FixPtUnitDelay2 = localDW->FixPtUnitDelay2_DSTATE;
1404
1405 /* Logic: '<S122>/FixPt Logical Operator' */
1406 localB->FixPtLogicalOperator = (uint8_T)(rtu_F_GPID_reset_gov ||
1407 (localB->FixPtUnitDelay2 != 0));
1408
1409 /* UnitDelay: '<S122>/FixPt Unit Delay1' */
1410 localB->Xold = localDW->FixPtUnitDelay1_DSTATE;
1411
1412 /* Switch: '<S122>/Init' */
1413 if (localB->FixPtLogicalOperator != 0) {
1414 localB->Init = localB->Subtract2;
1415 } else {
1416 localB->Init = localB->Xold;
1417 }
1418
1419 /* End of Switch: '<S122>/Init' */
1420
1421 /* Product: '<S118>/Product1' */
1422 localB->Product1 = rtu_GPID_Ki * rtu_GPID_control_error * rtu_GPID_dT;
1423
1424 /* Sum: '<S118>/Add' */
1425 localB->Add = localB->Init + localB->Product1;
1426
1427 /* UnitDelay: '<S111>/Unit_Delay' */
1428 localB->Unit_Delay = localDW->Unit_Delay_DSTATE;
1429
1430 /* Outputs for Atomic SubSystem: '<S120>/If_Then_Else' */
1431
1432 /* Constant: '<S120>/Constant' */
1433 L4_MABX_If_Then_Else(rtu_F_GPID_reset_gov, localP->Constant_Value,
1434 localB->Unit_Delay, &localB->If_Then_Else_c);
1435
1436 /* End of Outputs for SubSystem: '<S120>/If_Then_Else' */
1437
1438 /* Outputs for Atomic SubSystem: '<S120>/If_Then_Else2' */
1439 L4_MABX_If_Then_Else(rtu_F_GPID_reset_gov, rtu_GPID_actual_system_output,
1440 rtu_GPID_output_unlim_prev, &localB->If_Then_Else2);
1441
1442 /* End of Outputs for SubSystem: '<S120>/If_Then_Else2' */
1443
1444 /* Outputs for Atomic SubSystem: '<S120>/If_Then_Else1' */
1445 L4_MABX_If_Then_Else(rtu_F_GPID_aw_cond_integration,
1446 localB->If_Then_Else_c.Switch,
1447 localB->If_Then_Else2.Switch, &localB->If_Then_Else1);
1448
1449 /* End of Outputs for SubSystem: '<S120>/If_Then_Else1' */
1450
1451 /* Product: '<S120>/Product' */
1452 localB->Product = rtu_GPID_Ki * rtu_GPID_control_error *
1453 localB->If_Then_Else1.Switch;
1454
1455 /* RelationalOperator: '<S123>/Compare' incorporates:
1456 * Constant: '<S123>/Constant'
1457 */
1458 localB->Compare = (localB->Product > localP->Constant_Value_p);
1459
1460 /* RelationalOperator: '<S124>/Compare' incorporates:
1461 * Constant: '<S124>/Constant'
1462 */
1463 localB->Compare_n = (localB->Unit_Delay >= localP->Constant_Value_b);
1464
1465 /* Sum: '<S120>/Subtract' */
1466 localB->Subtract = localB->If_Then_Else2.Switch -
1467 rtu_GPID_actual_system_output;
1468
1469 /* RelationalOperator: '<S120>/Relational Operator1' */
1470 localB->RelationalOperator1 = (localB->Subtract > rtu_GPID_aw_hysteresis);
1471
1472 /* Sum: '<S120>/Subtract1' */
1473 localB->Subtract1 = rtu_GPID_actual_system_output -
1474 localB->If_Then_Else2.Switch;
1475
1476 /* RelationalOperator: '<S120>/Relational Operator2' */
1477 localB->RelationalOperator2 = (localB->Subtract1 > rtu_GPID_aw_hysteresis);
1478
1479 /* Outputs for Atomic SubSystem: '<S120>/If_Then_Else3' */
1480 L4_MABX_If_Then_Else3(localB->Compare_n, localB->RelationalOperator1,
1481 localB->RelationalOperator2, &localB->If_Then_Else3);
1482
1483 /* End of Outputs for SubSystem: '<S120>/If_Then_Else3' */
1484
1485 /* Logic: '<S120>/Logical Operator1' */
1486 localB->LogicalOperator1 = (localB->Compare && localB->If_Then_Else3.Switch);
1487
1488 /* Logic: '<S120>/Logical Operator2' */
1489 localB->LogicalOperator2 = (localB->LogicalOperator1 ||
1490 rtu_F_GPID_aw_hold_i_term);
1491
1492 /* Outputs for Atomic SubSystem: '<S118>/If_Then_Else' */
1493 L4_MABX_If_Then_Else(localB->LogicalOperator2, localB->Init, localB->Add,
1494 &localB->If_Then_Else);
1495
1496 /* End of Outputs for SubSystem: '<S118>/If_Then_Else' */
1497
1498 /* Switch: '<S122>/Reset' */
1499 if (rtu_F_GPID_reset_gov) {
1500 localB->Xnew = localB->Subtract2;
1501 } else {
1502 localB->Xnew = localB->If_Then_Else.Switch;
1503 }
1504
1505 /* End of Switch: '<S122>/Reset' */
1506 } else {
1507 if (localDW->Calculate_I_term_MODE) {
1508 L4_Calculate_I_term_Disable(localB, localDW, localP);
1509 }
1510 }
1511
1512 /* End of Outputs for SubSystem: '<S106>/Calculate_I_term' */
1513}
1514
1515/*
1516 * Update for enable system:
1517 * '<S106>/Calculate_I_term'
1518 * '<S144>/Calculate_I_term'
1519 * '<S238>/Calculate_I_term'
1520 */
1521void L4__Calculate_I_term_Update(B_Calculate_I_term_L4_MABX_T *localB,
1522 DW_Calculate_I_term_L4_MABX_T *localDW, P_Calculate_I_term_L4_MABX_T *localP)
1523{
1524 /* Update for Enabled SubSystem: '<S106>/Calculate_I_term' incorporates:
1525 * EnablePort: '<S111>/Enable'
1526 */
1527 if (localDW->Calculate_I_term_MODE) {
1528 /* Update for UnitDelay: '<S122>/FixPt Unit Delay2' incorporates:
1529 * Constant: '<S122>/FixPt Constant'
1530 */
1531 localDW->FixPtUnitDelay2_DSTATE = localP->FixPtConstant_Value;
1532
1533 /* Update for UnitDelay: '<S122>/FixPt Unit Delay1' */
1534 localDW->FixPtUnitDelay1_DSTATE = localB->Xnew;
1535
1536 /* Update for UnitDelay: '<S111>/Unit_Delay' */
1537 localDW->Unit_Delay_DSTATE = localB->If_Then_Else.Switch;
1538 }
1539
1540 /* End of Update for SubSystem: '<S106>/Calculate_I_term' */
1541}
1542
1543/* Output and update for atomic system: '<S98>/If_Then_Else' */
1544void L4_MABX_If_Then_Else_l(boolean_T rtu_If, boolean_T rtu_Then, boolean_T
1545 rtu_Else, B_If_Then_Else_L4_MABX_m_T *localB)
1546{
1547 /* Switch: '<S176>/Switch' */
1548 if (rtu_If) {
1549 localB->Switch = rtu_Then;
1550 } else {
1551 localB->Switch = rtu_Else;
1552 }
1553
1554 /* End of Switch: '<S176>/Switch' */
1555}
1556
1557/*
1558 * Output and update for atomic system:
1559 * '<S177>/If_Then_Else'
1560 * '<S177>/If_Then_Else1'
1561 * '<S178>/If_Then_Else'
1562 * '<S178>/If_Then_Else1'
1563 * '<S274>/If_Then_Else'
1564 * '<S274>/If_Then_Else1'
1565 * '<S347>/If_Then_Else'
1566 * '<S344>/If_Then_Else'
1567 * '<S353>/If_Then_Else'
1568 * '<S81>/If_Then_Else'
1569 * '<S980>/If_Then_Else1'
1570 */
1571void L4_MABX_If_Then_Else_g(boolean_T rtu_If, real_T rtu_Then, real_T rtu_Else,
1572 B_If_Then_Else_L4_MABX_k_T *localB)
1573{
1574 /* Switch: '<S179>/Switch' */
1575 if (rtu_If) {
1576 localB->Switch = rtu_Then;
1577 } else {
1578 localB->Switch = rtu_Else;
1579 }
1580
1581 /* End of Switch: '<S179>/Switch' */
1582}
1583
1584/* Output and update for atomic system: '<S299>/If_Then_Else' */
1585void L4_MABX_If_Then_Else_c(real_T rtu_If, real_T rtu_Then, real_T rtu_Else,
1586 B_If_Then_Else_L4_MABX_mf_T *localB)
1587{
1588 /* Switch: '<S307>/Switch' */
1589 if (rtu_If != 0.0) {
1590 localB->Switch = rtu_Then;
1591 } else {
1592 localB->Switch = rtu_Else;
1593 }
1594
1595 /* End of Switch: '<S307>/Switch' */
1596}
1597
1598/* Output and update for atomic system: '<S337>/If_Then_Else' */
1599void L4_MABX_If_Then_Else_m(boolean_T rtu_If, real_T rtu_Then, real_T rtu_Then_l,
1600 real_T rtu_Then_f, real_T rtu_Else, real_T rtu_Else_i, real_T rtu_Else_k,
1601 B_If_Then_Else_L4_MABX_h_T *localB)
1602{
1603 /* Switch: '<S339>/Switch' */
1604 if (rtu_If) {
1605 localB->Vehicle_speed_target = rtu_Then;
1606 localB->Vehicle_speed = rtu_Then_l;
1607 localB->Distance_m = rtu_Then_f;
1608 } else {
1609 localB->Vehicle_speed_target = rtu_Else;
1610 localB->Vehicle_speed = rtu_Else_i;
1611 localB->Distance_m = rtu_Else_k;
1612 }
1613
1614 /* End of Switch: '<S339>/Switch' */
1615}
1616
1617/* System initialize for function-call system: '<S386>/Background_Task' */
1618void L4_MAB_Background_Task_Init(void)
1619{
1620 /* InitializeConditions for S-Function (dsa_tcpip_bkg_sfcn): '<S395>/dsa_tcpip_bkg_sfcn' */
1621 /* Level2 S-Function Block: '<S395>/dsa_tcpip_bkg_sfcn' (dsa_tcpip_bkg_sfcn) */
1622 {
1623 SimStruct *rts = L4_MABX_M->childSfunctions[0];
1624 sfcnInitializeConditions(rts);
1625 if (ssGetErrorStatus(rts) != (NULL))
1626 return;
1627 }
1628}
1629
1630/* System reset for function-call system: '<S386>/Background_Task' */
1631void L4_MA_Background_Task_Reset(void)
1632{
1633 /* InitializeConditions for S-Function (dsa_tcpip_bkg_sfcn): '<S395>/dsa_tcpip_bkg_sfcn' */
1634 /* Level2 S-Function Block: '<S395>/dsa_tcpip_bkg_sfcn' (dsa_tcpip_bkg_sfcn) */
1635 {
1636 SimStruct *rts = L4_MABX_M->childSfunctions[0];
1637 sfcnInitializeConditions(rts);
1638 if (ssGetErrorStatus(rts) != (NULL))
1639 return;
1640 }
1641}
1642
1643/* Start for function-call system: '<S386>/Background_Task' */
1644void L4_MA_Background_Task_Start(void)
1645{
1646 /* Start for S-Function (dsa_tcpip_bkg_sfcn): '<S395>/dsa_tcpip_bkg_sfcn' */
1647 /* Level2 S-Function Block: '<S395>/dsa_tcpip_bkg_sfcn' (dsa_tcpip_bkg_sfcn) */
1648 {
1649 SimStruct *rts = L4_MABX_M->childSfunctions[0];
1650 sfcnStart(rts);
1651 if (ssGetErrorStatus(rts) != (NULL))
1652 return;
1653 }
1654}
1655
1656/* Output and update for function-call system: '<S386>/Background_Task' */
1657void L4_MABX_Background_Task(void)
1658{
1659 /* S-Function (dsa_tcpip_bkg_sfcn): '<S395>/dsa_tcpip_bkg_sfcn' */
1660
1661 /* Level2 S-Function Block: '<S395>/dsa_tcpip_bkg_sfcn' (dsa_tcpip_bkg_sfcn) */
1662 {
1663 SimStruct *rts = L4_MABX_M->childSfunctions[0];
1664 sfcnOutputs(rts,9);
1665 }
1666}
1667
1668/* Termination for function-call system: '<S386>/Background_Task' */
1669void L4_MAB_Background_Task_Term(void)
1670{
1671 /* Terminate for S-Function (dsa_tcpip_bkg_sfcn): '<S395>/dsa_tcpip_bkg_sfcn' */
1672 /* Level2 S-Function Block: '<S395>/dsa_tcpip_bkg_sfcn' (dsa_tcpip_bkg_sfcn) */
1673 {
1674 SimStruct *rts = L4_MABX_M->childSfunctions[0];
1675 sfcnTerminate(rts);
1676 }
1677}
1678
1679/* System initialize for function-call system: '<S386>/IRQ_Level_2_SW_INT' */
1680void L4__IRQ_Level_2_SW_INT_Init(void)
1681{
1682 /* InitializeConditions for S-Function (dsa_tcpip_irq_l2_sfcn): '<S396>/dsa_tcpip_irq_l2_sfcn' */
1683 /* Level2 S-Function Block: '<S396>/dsa_tcpip_irq_l2_sfcn' (dsa_tcpip_irq_l2_sfcn) */
1684 {
1685 SimStruct *rts = L4_MABX_M->childSfunctions[1];
1686 sfcnInitializeConditions(rts);
1687 if (ssGetErrorStatus(rts) != (NULL))
1688 return;
1689 }
1690}
1691
1692/* System reset for function-call system: '<S386>/IRQ_Level_2_SW_INT' */
1693void L4_IRQ_Level_2_SW_INT_Reset(void)
1694{
1695 /* InitializeConditions for S-Function (dsa_tcpip_irq_l2_sfcn): '<S396>/dsa_tcpip_irq_l2_sfcn' */
1696 /* Level2 S-Function Block: '<S396>/dsa_tcpip_irq_l2_sfcn' (dsa_tcpip_irq_l2_sfcn) */
1697 {
1698 SimStruct *rts = L4_MABX_M->childSfunctions[1];
1699 sfcnInitializeConditions(rts);
1700 if (ssGetErrorStatus(rts) != (NULL))
1701 return;
1702 }
1703}
1704
1705/* Start for function-call system: '<S386>/IRQ_Level_2_SW_INT' */
1706void L4_IRQ_Level_2_SW_INT_Start(void)
1707{
1708 /* Start for S-Function (dsa_tcpip_irq_l2_sfcn): '<S396>/dsa_tcpip_irq_l2_sfcn' */
1709 /* Level2 S-Function Block: '<S396>/dsa_tcpip_irq_l2_sfcn' (dsa_tcpip_irq_l2_sfcn) */
1710 {
1711 SimStruct *rts = L4_MABX_M->childSfunctions[1];
1712 sfcnStart(rts);
1713 if (ssGetErrorStatus(rts) != (NULL))
1714 return;
1715 }
1716}
1717
1718/* Output and update for function-call system: '<S386>/IRQ_Level_2_SW_INT' */
1719void L4_MABX_IRQ_Level_2_SW_INT(void)
1720{
1721 /* S-Function (dsa_tcpip_irq_l2_sfcn): '<S396>/dsa_tcpip_irq_l2_sfcn' */
1722
1723 /* Level2 S-Function Block: '<S396>/dsa_tcpip_irq_l2_sfcn' (dsa_tcpip_irq_l2_sfcn) */
1724 {
1725 SimStruct *rts = L4_MABX_M->childSfunctions[1];
1726 sfcnOutputs(rts,10);
1727 }
1728}
1729
1730/* Termination for function-call system: '<S386>/IRQ_Level_2_SW_INT' */
1731void L4__IRQ_Level_2_SW_INT_Term(void)
1732{
1733 /* Terminate for S-Function (dsa_tcpip_irq_l2_sfcn): '<S396>/dsa_tcpip_irq_l2_sfcn' */
1734 /* Level2 S-Function Block: '<S396>/dsa_tcpip_irq_l2_sfcn' (dsa_tcpip_irq_l2_sfcn) */
1735 {
1736 SimStruct *rts = L4_MABX_M->childSfunctions[1];
1737 sfcnTerminate(rts);
1738 }
1739}
1740
1741/* System initialize for function-call system: '<S397>/Tcp Input Processing' */
1742void L4__TcpInputProcessing_Init(void)
1743{
1744 /* SystemInitialize for S-Function (rti_commonblock): '<S399>/S-Function1' incorporates:
1745 * SubSystem: '<S386>/IRQ_Level_2_SW_INT'
1746 */
1747 L4__IRQ_Level_2_SW_INT_Init();
1748
1749 /* End of SystemInitialize for S-Function (rti_commonblock): '<S399>/S-Function1' */
1750}
1751
1752/* System reset for function-call system: '<S397>/Tcp Input Processing' */
1753void L4_TcpInputProcessing_Reset(void)
1754{
1755 /* SystemReset for S-Function (rti_commonblock): '<S399>/S-Function1' incorporates:
1756 * SubSystem: '<S386>/IRQ_Level_2_SW_INT'
1757 */
1758 L4_IRQ_Level_2_SW_INT_Reset();
1759
1760 /* End of SystemReset for S-Function (rti_commonblock): '<S399>/S-Function1' */
1761}
1762
1763/* Start for function-call system: '<S397>/Tcp Input Processing' */
1764void L4_TcpInputProcessing_Start(void)
1765{
1766 /* Start for S-Function (rti_commonblock): '<S399>/S-Function1' incorporates:
1767 * SubSystem: '<S386>/IRQ_Level_2_SW_INT'
1768 */
1769 L4_IRQ_Level_2_SW_INT_Start();
1770
1771 /* End of Start for S-Function (rti_commonblock): '<S399>/S-Function1' */
1772}
1773
1774/* Output and update for function-call system: '<S397>/Tcp Input Processing' */
1775void L4_MABX_TcpInputProcessing(void)
1776{
1777 /* S-Function (rti_commonblock): '<S399>/S-Function1' */
1778
1779 /* This comment workarounds a code generation problem */
1780
1781 /* dSPACE Software Interrupt Block: <S397>/Tcp Input Processing */
1782 rtk_schedule_task(S_SOFTTASK,0);
1783
1784 /* End of Outputs for S-Function (rti_commonblock): '<S399>/S-Function1' */
1785}
1786
1787/*
1788 * Forced non-inlined (FNI) function call stub
1789 * for '<S397>/Tcp Input Processing'
1790 */
1791boolean_T L4_MABX_TcpInputProcessingFNI(RT_MODEL_L4_MABX_T *const L4_MABX_M,
1792 int_T controlPortIdx, int_T tid)
1793{
1794 L4_MABX_TcpInputProcessing();
1795 UNUSED_PARAMETER(L4_MABX_M);
1796 UNUSED_PARAMETER(controlPortIdx);
1797 UNUSED_PARAMETER(tid);
1798 return (1);
1799}
1800
1801/*
1802 * Forced non-inlined (FNI) function call stub
1803 * for '<S397>/Tcp Input Processing'
1804 */
1805boolean_T L4_TcpInputProcessing_ResetFNI(RT_MODEL_L4_MABX_T *const L4_MABX_M,
1806 int_T controlPortIdx, int_T tid)
1807{
1808 UNUSED_PARAMETER(L4_MABX_M);
1809 UNUSED_PARAMETER(controlPortIdx);
1810 UNUSED_PARAMETER(tid);
1811 return (1);
1812}
1813
1814/* Termination for function-call system: '<S397>/Tcp Input Processing' */
1815void L4__TcpInputProcessing_Term(void)
1816{
1817 /* Terminate for S-Function (rti_commonblock): '<S399>/S-Function1' incorporates:
1818 * SubSystem: '<S386>/IRQ_Level_2_SW_INT'
1819 */
1820 L4__IRQ_Level_2_SW_INT_Term();
1821
1822 /* End of Terminate for S-Function (rti_commonblock): '<S399>/S-Function1' */
1823}
1824
1825/* System initialize for function-call system: '<S386>/Interrupt_Task' */
1826void L4_MABX_Interrupt_Task_Init(void)
1827{
1828 /* InitializeConditions for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' */
1829
1830 /* Level2 S-Function Block: '<S397>/dsa_tcpip_irq_l1_sfcn' (dsa_tcpip_irq_l1_sfcn) */
1831 {
1832 SimStruct *rts = L4_MABX_M->childSfunctions[2];
1833 sfcnInitializeConditions(rts);
1834 if (ssGetErrorStatus(rts) != (NULL))
1835 return;
1836 }
1837
1838 /* End of InitializeConditions for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' */
1839
1840 /* SystemInitialize for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' incorporates:
1841 * SubSystem: '<S397>/Tcp Input Processing'
1842 */
1843 L4__TcpInputProcessing_Init();
1844
1845 /* End of SystemInitialize for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' */
1846}
1847
1848/* System reset for function-call system: '<S386>/Interrupt_Task' */
1849void L4_MAB_Interrupt_Task_Reset(void)
1850{
1851 /* InitializeConditions for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' */
1852
1853 /* Level2 S-Function Block: '<S397>/dsa_tcpip_irq_l1_sfcn' (dsa_tcpip_irq_l1_sfcn) */
1854 {
1855 SimStruct *rts = L4_MABX_M->childSfunctions[2];
1856 sfcnInitializeConditions(rts);
1857 if (ssGetErrorStatus(rts) != (NULL))
1858 return;
1859 }
1860
1861 /* End of InitializeConditions for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' */
1862
1863 /* SystemReset for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' incorporates:
1864 * SubSystem: '<S397>/Tcp Input Processing'
1865 */
1866 L4_TcpInputProcessing_Reset();
1867
1868 /* End of SystemReset for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' */
1869}
1870
1871/* Start for function-call system: '<S386>/Interrupt_Task' */
1872void L4_MAB_Interrupt_Task_Start(void)
1873{
1874 /* Start for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' incorporates:
1875 * SubSystem: '<S397>/Tcp Input Processing'
1876 */
1877 L4_TcpInputProcessing_Start();
1878
1879 /* Level2 S-Function Block: '<S397>/dsa_tcpip_irq_l1_sfcn' (dsa_tcpip_irq_l1_sfcn) */
1880 {
1881 SimStruct *rts = L4_MABX_M->childSfunctions[2];
1882 sfcnStart(rts);
1883 if (ssGetErrorStatus(rts) != (NULL))
1884 return;
1885 }
1886
1887 /* End of Start for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' */
1888}
1889
1890/* Output and update for function-call system: '<S386>/Interrupt_Task' */
1891void L4_MABX_Interrupt_Task(void)
1892{
1893 /* S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' */
1894
1895 /* Level2 S-Function Block: '<S397>/dsa_tcpip_irq_l1_sfcn' (dsa_tcpip_irq_l1_sfcn) */
1896 {
1897 SimStruct *rts = L4_MABX_M->childSfunctions[2];
1898 sfcnOutputs(rts,11);
1899 }
1900
1901 /* End of Outputs for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' */
1902}
1903
1904/* Termination for function-call system: '<S386>/Interrupt_Task' */
1905void L4_MABX_Interrupt_Task_Term(void)
1906{
1907 /* Terminate for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' */
1908
1909 /* Level2 S-Function Block: '<S397>/dsa_tcpip_irq_l1_sfcn' (dsa_tcpip_irq_l1_sfcn) */
1910 {
1911 SimStruct *rts = L4_MABX_M->childSfunctions[2];
1912 sfcnTerminate(rts);
1913 }
1914
1915 /* End of Terminate for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' */
1916
1917 /* Terminate for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' incorporates:
1918 * SubSystem: '<S397>/Tcp Input Processing'
1919 */
1920 L4__TcpInputProcessing_Term();
1921
1922 /* End of Terminate for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' */
1923}
1924
1925/* Output and update for atomic system: '<S726>/If_Then_Else' */
1926void L4_MABX_If_Then_Else_n(boolean_T rtu_If, real_T rtu_Then, real_T rtu_Else)
1927{
1928 /* Switch: '<S731>/Switch' */
1929 if (rtu_If) {
1930 Pedal_pwm_position = rtu_Then;
1931 } else {
1932 Pedal_pwm_position = rtu_Else;
1933 }
1934
1935 /* End of Switch: '<S731>/Switch' */
1936}
1937
1938/* System initialize for function-call system: '<S403>/IncrementTimer' */
1939void L4_MABX_IncrementTimer_Init(void)
1940{
1941 /* InitializeConditions for UnitDelay: '<S813>/Unit_Delay' */
1942 L4_MABX_DW.Unit_Delay_DSTATE_h = L4_MABX_P.Unit_Delay_InitialCondition_bq;
1943
1944 /* SystemInitialize for Outport: '<S813>/Out1' */
1945 L4_MABX_B.Add = L4_MABX_P.Out1_Y0_d;
1946}
1947
1948/* System reset for function-call system: '<S403>/IncrementTimer' */
1949void L4_MAB_IncrementTimer_Reset(void)
1950{
1951 /* InitializeConditions for UnitDelay: '<S813>/Unit_Delay' */
1952 L4_MABX_DW.Unit_Delay_DSTATE_h = L4_MABX_P.Unit_Delay_InitialCondition_bq;
1953}
1954
1955/* Output and update for function-call system: '<S403>/IncrementTimer' */
1956void L4_MABX_IncrementTimer(void)
1957{
1958 /* UnitDelay: '<S813>/Unit_Delay' */
1959 L4_MABX_B.Unit_Delay_i = L4_MABX_DW.Unit_Delay_DSTATE_h;
1960
1961 /* Sum: '<S813>/Add' incorporates:
1962 * Constant: '<S813>/Constant1'
1963 */
1964 L4_MABX_B.Add = L4_MABX_P.Constant1_Value_pc + L4_MABX_B.Unit_Delay_i;
1965
1966 /* Update for UnitDelay: '<S813>/Unit_Delay' */
1967 L4_MABX_DW.Unit_Delay_DSTATE_h = L4_MABX_B.Add;
1968}
1969
1970/*
1971 * Output and update for enable system:
1972 * '<S943>/ALL_CTRL_DISABLED'
1973 * '<S943>/DEFAULT_TRQ_CTRL_MODE'
1974 * '<S943>/EXT_TRQ_CTRL_MODE_A'
1975 * '<S943>/EXT_TRQ_CTRL_MODE_B'
1976 * '<S943>/EXT_TRQ_CTRL_MODE_C'
1977 */
1978void L4_MABX_ALL_CTRL_DISABLED(boolean_T rtu_Enable, int32_T *rty_Out1,
1979 P_ALL_CTRL_DISABLED_L4_MABX_T *localP)
1980{
1981 /* Outputs for Enabled SubSystem: '<S943>/ALL_CTRL_DISABLED' incorporates:
1982 * EnablePort: '<S958>/Enable'
1983 */
1984 if (rtu_Enable) {
1985 /* SignalConversion: '<S958>/OutportBufferForOut1' incorporates:
1986 * Constant: '<S958>/Constant'
1987 */
1988 *rty_Out1 = localP->Constant_Value;
1989 }
1990
1991 /* End of Outputs for SubSystem: '<S943>/ALL_CTRL_DISABLED' */
1992}
1993
1994/* Output and update for atomic system: '<S981>/If_Then_Else' */
1995void L4_MABX_If_Then_Else_a(boolean_T rtu_If, real_T rtu_Then,
1996 ENUM_XBR_EBI_MODE_T rtu_Then_i, ENUM_XBR_PRIORITY_T rtu_Then_c,
1997 ENUM_XBR_CONTROL_MODE_T rtu_Then_j, ENUM_XBR_PASS_THROUGH_ACTIVE_T rtu_Then_d,
1998 real_T rtu_Then_js, real_T rtu_Then_h, real_T rtu_Else, ENUM_XBR_EBI_MODE_T
1999 rtu_Else_m, ENUM_XBR_PRIORITY_T rtu_Else_i, ENUM_XBR_CONTROL_MODE_T rtu_Else_j,
2000 ENUM_XBR_PASS_THROUGH_ACTIVE_T rtu_Else_j3, real_T rtu_Else_f, real_T
2001 rtu_Else_c, B_If_Then_Else_L4_MABX_ke_T *localB)
2002{
2003 /* Switch: '<S1005>/Switch' */
2004 if (rtu_If) {
2005 localB->XBRExternalAccelDemand = rtu_Then;
2006 localB->XBREnduranceBrakeIntegrationMod = rtu_Then_i;
2007 localB->XBRPriority = rtu_Then_c;
2008 localB->XBRControlMode = rtu_Then_j;
2009 localB->XBRPassThroughActive = rtu_Then_d;
2010 localB->XBRUrgency = rtu_Then_js;
2011 localB->XBRPassThroughEnabled = rtu_Then_h;
2012 } else {
2013 localB->XBRExternalAccelDemand = rtu_Else;
2014 localB->XBREnduranceBrakeIntegrationMod = rtu_Else_m;
2015 localB->XBRPriority = rtu_Else_i;
2016 localB->XBRControlMode = rtu_Else_j;
2017 localB->XBRPassThroughActive = rtu_Else_j3;
2018 localB->XBRUrgency = rtu_Else_f;
2019 localB->XBRPassThroughEnabled = rtu_Else_c;
2020 }
2021
2022 /* End of Switch: '<S1005>/Switch' */
2023}
2024
2025static int32_T safe_cast_to_ENUM_XPR_CONTROL_M(int32_T input)
2026{
2027 int32_T y;
2028
2029 /* Initialize output value to default value for ENUM_XPR_CONTROL_MODE_T (NO_BRAKE_DEMAND) */
2030 y = 0;
2031 if (((input >= 0) && (input <= 3)) || ((input >= 13) && (input <= 15))) {
2032 /* Set output value to input value if it is a member of ENUM_XPR_CONTROL_MODE_T */
2033 y = input;
2034 }
2035
2036 return y;
2037}
2038
2039static int32_T safe_cast_to_ENUM_XPR_ERROR_STA(int32_T input)
2040{
2041 int32_T y;
2042
2043 /* Initialize output value to default value for ENUM_XPR_ERROR_STATE_T (XPR_OK) */
2044 y = 0;
2045 if ((input >= 0) && (input <= 3)) {
2046 /* Set output value to input value if it is a member of ENUM_XPR_ERROR_STATE_T */
2047 y = input;
2048 }
2049
2050 return y;
2051}
2052
2053/* Function for Chart: '<S205>/Relay_control_state_machine' */
2054static void L4_MABX_enter_atomic_INITIAL(void)
2055{
2056 /* Entry 'INITIAL': '<S212>:12' */
2057 L4_MABX_B.F_Ignition_relay_command_i = false;
2058 L4_MABX_B.F_Inverter_relay_command_p = false;
2059 L4_MABX_B.F_MABX_relay_command_n = false;
2060 L4_MABX_B.F_Sensor_relay_command_k = false;
2061 L4_MABX_DW.IGN_RELAY_ON_DELAY_SECS_APV =
2062 L4_MABX_B.TmpSignalConversionAtSFunctionI[0];
2063 L4_MABX_DW.INVERTER_RELAY_ON_DELAY_SECS_AP =
2064 L4_MABX_B.TmpSignalConversionAtSFunctionI[1];
2065 L4_MABX_DW.MABX_RELAY_ON_DELAY_SECS_APV =
2066 L4_MABX_B.TmpSignalConversionAtSFunctionI[2];
2067 L4_MABX_DW.SENSOR_RELAY_ON_DELAY_SECS_APV =
2068 L4_MABX_B.TmpSignalConversionAtSFunctionI[3];
2069 L4_MABX_DW.IGN_RELAY_OFF_DELAY_SECS_APV =
2070 L4_MABX_B.TmpSignalConversionAtSFunctio_k[0];
2071 L4_MABX_DW.INVERTER_RELAY_OFF_DELAY_SECS_A =
2072 L4_MABX_B.TmpSignalConversionAtSFunctio_k[1];
2073 L4_MABX_DW.MABX_RELAY_OFF_DELAY_SECS_APV =
2074 L4_MABX_B.TmpSignalConversionAtSFunctio_k[2];
2075 L4_MABX_DW.SENSOR_RELAY_OFF_DELAY_SECS_APV =
2076 L4_MABX_B.TmpSignalConversionAtSFunctio_k[3];
2077}
2078
2079real_T rt_atan2d_snf(real_T u0, real_T u1)
2080{
2081 real_T y;
2082 int32_T tmp;
2083 int32_T tmp_0;
2084 if (rtIsNaN(u0) || rtIsNaN(u1)) {
2085 y = (rtNaN);
2086 } else if (rtIsInf(u0) && rtIsInf(u1)) {
2087 if (u1 > 0.0) {
2088 tmp = 1;
2089 } else {
2090 tmp = -1;
2091 }
2092
2093 if (u0 > 0.0) {
2094 tmp_0 = 1;
2095 } else {
2096 tmp_0 = -1;
2097 }
2098
2099 y = atan2(tmp_0, tmp);
2100 } else if (u1 == 0.0) {
2101 if (u0 > 0.0) {
2102 y = RT_PI / 2.0;
2103 } else if (u0 < 0.0) {
2104 y = -(RT_PI / 2.0);
2105 } else {
2106 y = 0.0;
2107 }
2108 } else {
2109 y = atan2(u0, u1);
2110 }
2111
2112 return y;
2113}
2114
2115real_T rt_powd_snf(real_T u0, real_T u1)
2116{
2117 real_T y;
2118 real_T tmp;
2119 real_T tmp_0;
2120 if (rtIsNaN(u0) || rtIsNaN(u1)) {
2121 y = (rtNaN);
2122 } else {
2123 tmp = fabs(u0);
2124 tmp_0 = fabs(u1);
2125 if (rtIsInf(u1)) {
2126 if (tmp == 1.0) {
2127 y = 1.0;
2128 } else if (tmp > 1.0) {
2129 if (u1 > 0.0) {
2130 y = (rtInf);
2131 } else {
2132 y = 0.0;
2133 }
2134 } else if (u1 > 0.0) {
2135 y = 0.0;
2136 } else {
2137 y = (rtInf);
2138 }
2139 } else if (tmp_0 == 0.0) {
2140 y = 1.0;
2141 } else if (tmp_0 == 1.0) {
2142 if (u1 > 0.0) {
2143 y = u0;
2144 } else {
2145 y = 1.0 / u0;
2146 }
2147 } else if (u1 == 2.0) {
2148 y = u0 * u0;
2149 } else if ((u1 == 0.5) && (u0 >= 0.0)) {
2150 y = sqrt(u0);
2151 } else if ((u0 < 0.0) && (u1 > floor(u1))) {
2152 y = (rtNaN);
2153 } else {
2154 y = pow(u0, u1);
2155 }
2156 }
2157
2158 return y;
2159}
2160
2161/* Function for Chart: '<S331>/VehicleSpeedSetpointDynamicCalculation' */
2162static void L4_MABX_Calculate_abc(void)
2163{
2164 /* MATLAB Function 'Calculate_abc': '<S346>:158' */
2165 /* Graphical Function 'Calculate_abc': '<S346>:158' */
2166 /* '<S346>:160:1' */
2167 L4_MABX_DW.a = L4_MABX_DW.Jerk56 - L4_MABX_DW.Jerk12;
2168
2169 /* '<S346>:160:1' */
2170 L4_MABX_DW.b = ((L4_MABX_DW.AccelerationFinalLimited * L4_MABX_DW.Jerk12 -
2171 L4_MABX_DW.AccelerationInitialLimited * L4_MABX_DW.Jerk56) -
2172 L4_MABX_DW.Jerk12 * L4_MABX_DW.Jerk56 * L4_MABX_DW.TimeFinal) *
2173 2.0;
2174
2175 /* '<S346>:160:3' */
2176 L4_MABX_DW.c = (2.0 * L4_MABX_DW.Jerk12 * L4_MABX_DW.Jerk56 *
2177 (L4_MABX_DW.VelocityFinalLimited -
2178 L4_MABX_DW.VelocityInitialLimited) +
2179 L4_MABX_DW.AccelerationInitialLimited *
2180 L4_MABX_DW.AccelerationInitialLimited * L4_MABX_DW.Jerk56) -
2181 L4_MABX_DW.AccelerationFinalLimited * L4_MABX_DW.AccelerationFinalLimited *
2182 L4_MABX_DW.Jerk12;
2183}
2184
2185/* Function for Chart: '<S331>/VehicleSpeedSetpointDynamicCalculation' */
2186static void L4_MABX_CalculateAlternate_abc(void)
2187{
2188 /* MATLAB Function 'CalculateAlternate_abc': '<S346>:286' */
2189 /* Graphical Function 'CalculateAlternate_abc': '<S346>:286' */
2190 /* '<S346>:285:1' */
2191 L4_MABX_DW.a = 1.0;
2192
2193 /* '<S346>:285:1' */
2194 L4_MABX_DW.b = ((L4_MABX_DW.TimeFinal - 0.005) * L4_MABX_DW.Jerk56 -
2195 L4_MABX_DW.AccelerationFinalLimited) * 2.0;
2196
2197 /* '<S346>:285:3' */
2198 L4_MABX_DW.c = 2.0 * L4_MABX_DW.Jerk56 * (L4_MABX_DW.VelocityInitialLimited -
2199 L4_MABX_DW.VelocityFinalLimited) + L4_MABX_DW.AccelerationFinalLimited *
2200 L4_MABX_DW.AccelerationFinalLimited;
2201}
2202
2203/* Function for Chart: '<S331>/VehicleSpeedSetpointDynamicCalculation' */
2204static void L4_MABX_CalculateAcceleration34(void)
2205{
2206 real_T u;
2207 real_T u0;
2208 real_T u1;
2209
2210 /* MATLAB Function 'CalculateAcceleration34': '<S346>:167' */
2211 /* Graphical Function 'CalculateAcceleration34': '<S346>:167' */
2212 /* '<S346>:186:1' */
2213 /* '<S346>:186:5' */
2214 /* '<S346>:186:8' */
2215 u = L4_MABX_DW.Jerk12;
2216 if (u < 0.0) {
2217 u = -1.0;
2218 } else if (u > 0.0) {
2219 u = 1.0;
2220 } else if (u == 0.0) {
2221 u = 0.0;
2222 } else {
2223 u = (rtNaN);
2224 }
2225
2226 u0 = fabs(L4_MABX_DW.Jerk12);
2227 u1 = fabs(((((L4_MABX_DW.AccelerationInitialLimited *
2228 L4_MABX_DW.AccelerationFinalLimited -
2229 L4_MABX_DW.AccelerationInitialLimited * L4_MABX_DW.Jerk56 *
2230 L4_MABX_DW.TimeFinal) + (L4_MABX_DW.VelocityFinalLimited -
2231 L4_MABX_DW.VelocityInitialLimited) * L4_MABX_DW.Jerk56) * 2.0 -
2232 L4_MABX_DW.AccelerationInitialLimited *
2233 L4_MABX_DW.AccelerationInitialLimited) -
2234 L4_MABX_DW.AccelerationFinalLimited *
2235 L4_MABX_DW.AccelerationFinalLimited) /
2236 (((L4_MABX_DW.VelocityFinalLimited -
2237 L4_MABX_DW.VelocityInitialLimited) -
2238 L4_MABX_DW.AccelerationFinalLimited * L4_MABX_DW.TimeFinal) * 2.0
2239 + L4_MABX_DW.TimeFinal * L4_MABX_DW.TimeFinal * L4_MABX_DW.Jerk56))
2240 + 0.001;
2241 if ((u0 > u1) || rtIsNaN(u1)) {
2242 u1 = u0;
2243 }
2244
2245 L4_MABX_DW.Jerk12 = u * u1;
2246
2247 /* '<S346>:186:11' */
2248 u1 = L4_MABX_DW.Jerk12;
2249 if ((10.0 < u1) || rtIsNaN(u1)) {
2250 u1 = 10.0;
2251 }
2252
2253 if ((-10.0 > u1) || rtIsNaN(u1)) {
2254 L4_MABX_DW.Jerk12 = -10.0;
2255 } else {
2256 L4_MABX_DW.Jerk12 = u1;
2257 }
2258
2259 /* '<S346>:186:11' */
2260 L4_MABX_Calculate_abc();
2261
2262 /* '<S346>:187:1' */
2263 if (fabs(L4_MABX_DW.a) < 0.01) {
2264 /* '<S346>:188:1' */
2265 L4_MABX_DW.Jerk12 = L4_MABX_DW.Jerk56;
2266
2267 /* '<S346>:188:1' */
2268 L4_MABX_Calculate_abc();
2269
2270 /* '<S346>:188:1' */
2271 L4_MABX_DW.Acceleration34 = -L4_MABX_DW.c / L4_MABX_DW.b;
2272
2273 /* '<S346>:188:2' */
2274 L4_MABX_DW.AlternateMethod = false;
2275 } else {
2276 /* '<S346>:224:1' */
2277 if (L4_MABX_DW.b * L4_MABX_DW.b <= 4.0 * L4_MABX_DW.a * L4_MABX_DW.c) {
2278 /* '<S346>:292:1' */
2279 L4_MABX_CalculateAlternate_abc();
2280
2281 /* '<S346>:292:1' */
2282 L4_MABX_DW.Acceleration34 = -L4_MABX_DW.b / (2.0 * L4_MABX_DW.a);
2283
2284 /* '<S346>:292:2' */
2285 L4_MABX_DW.AlternateMethod = true;
2286 } else {
2287 /* '<S346>:294:1' */
2288 L4_MABX_DW.Acceleration34 = (sqrt(L4_MABX_DW.b * L4_MABX_DW.b - 4.0 *
2289 L4_MABX_DW.a * L4_MABX_DW.c) + -L4_MABX_DW.b) / (2.0 * L4_MABX_DW.a);
2290
2291 /* '<S346>:294:2' */
2292 L4_MABX_DW.AlternateMethod = false;
2293 }
2294 }
2295}
2296
2297static int32_T safe_cast_to_ENUM_CAN_STATUS_DI(int32_T input)
2298{
2299 int32_T y;
2300
2301 /* Initialize output value to default value for ENUM_CAN_STATUS_DIAG_T (ACTIVE) */
2302 y = 0;
2303 if ((input >= 0) && (input <= 2)) {
2304 /* Set output value to input value if it is a member of ENUM_CAN_STATUS_DIAG_T */
2305 y = input;
2306 }
2307
2308 return y;
2309}
2310
2311/* Model output function for TID0 */
2312void L4_MABX_output0(void) /* Sample time: [0.01s, 0.0s] */
2313{
2314 int_T tid = 0;
2315 uint8_T starting_index;
2316 real_T AccelerationAverage;
2317 real_T DeltaTimeFinal;
2318 uint8_T j;
2319 real_T PositionFinalLimited;
2320 real_T Time56;
2321 real_T DeltaTime;
2322 uint32_T tmp;
2323 boolean_T zcEvent;
2324 int32_T i;
2325 uint32_T q0;
2326 uint16_T tmp_0;
2327 int8_T tmp_1;
2328
2329 /* Update the flag to indicate when data transfers from
2330 * Sample time: [0.01s, 0.0s] to Sample time: [0.02s, 0.0s] */
2331 L4_MABX_M->Timing.perTaskSampleHits[1] =
2332 (L4_MABX_M->Timing.RateInteraction.TID0_1 == 0);
2333 (L4_MABX_M->Timing.RateInteraction.TID0_1)++;
2334 if ((L4_MABX_M->Timing.RateInteraction.TID0_1) > 1) {
2335 L4_MABX_M->Timing.RateInteraction.TID0_1 = 0;
2336 }
2337
2338 /* Update the flag to indicate when data transfers from
2339 * Sample time: [0.01s, 0.0s] to Sample time: [0.05s, 0.0s] */
2340 L4_MABX_M->Timing.perTaskSampleHits[2] =
2341 (L4_MABX_M->Timing.RateInteraction.TID0_2 == 0);
2342 (L4_MABX_M->Timing.RateInteraction.TID0_2)++;
2343 if ((L4_MABX_M->Timing.RateInteraction.TID0_2) > 4) {
2344 L4_MABX_M->Timing.RateInteraction.TID0_2 = 0;
2345 }
2346
2347 /* Update the flag to indicate when data transfers from
2348 * Sample time: [0.01s, 0.0s] to Sample time: [0.1s, 0.0s] */
2349 L4_MABX_M->Timing.perTaskSampleHits[3] =
2350 (L4_MABX_M->Timing.RateInteraction.TID0_3 == 0);
2351 (L4_MABX_M->Timing.RateInteraction.TID0_3)++;
2352 if ((L4_MABX_M->Timing.RateInteraction.TID0_3) > 9) {
2353 L4_MABX_M->Timing.RateInteraction.TID0_3 = 0;
2354 }
2355
2356 /* Update the flag to indicate when data transfers from
2357 * Sample time: [0.01s, 0.0s] to Sample time: [1.0s, 0.0s] */
2358 L4_MABX_M->Timing.perTaskSampleHits[6] =
2359 (L4_MABX_M->Timing.RateInteraction.TID0_6 == 0);
2360 (L4_MABX_M->Timing.RateInteraction.TID0_6)++;
2361 if ((L4_MABX_M->Timing.RateInteraction.TID0_6) > 99) {
2362 L4_MABX_M->Timing.RateInteraction.TID0_6 = 0;
2363 }
2364
2365 /* Update the flag to indicate when data transfers from
2366 * Sample time: [0.01s, 0.0s] to Sample time: [5.0s, 0.0s] */
2367 L4_MABX_M->Timing.perTaskSampleHits[7] =
2368 (L4_MABX_M->Timing.RateInteraction.TID0_7 == 0);
2369 (L4_MABX_M->Timing.RateInteraction.TID0_7)++;
2370 if ((L4_MABX_M->Timing.RateInteraction.TID0_7) > 499) {
2371 L4_MABX_M->Timing.RateInteraction.TID0_7 = 0;
2372 }
2373
2374 /* Outputs for Enabled SubSystem: '<S483>/AIR1' incorporates:
2375 * EnablePort: '<S484>/Enable'
2376 */
2377 /* Constant: '<S411>/Constant' */
2378 if (L4_MABX_P.Constant_Value_iy) {
2379 /* S-Function (rti_commonblock): '<S484>/S-Function1' */
2380 /* This comment workarounds a code generation problem */
2381
2382 /* dSPACE RTICAN RX Message Block: "AIR1" Id:419343921 */
2383 {
2384 UInt32 *CAN_Msg;
2385 static dsfloat time_old = 0.0;
2386
2387 /* Read status and timestamp info (previous message) */
2388 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEAE31].timestamp !=
2389 time_old) {
2390 /* ... save timestamp info for the calculation of the RX status
2391 during the consecutive sample hit*/
2392 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEAE31].
2393 timestamp;
2394
2395 /* ... set the processed flag to one */
2396 L4_MABX_B.SFunction1_o9_hq5 = 1.0;
2397 L4_MABX_B.SFunction1_o10_f = (real_T)
2398 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEAE31].timestamp;
2399 L4_MABX_B.SFunction1_o11_em = (real_T)
2400 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEAE31].deltatime;
2401 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEAE31].data;
2402
2403 /* Decode CAN message */
2404 {
2405 {
2406 rtican_Signal_t CAN_Sgn;
2407
2408 /* ...... "PneumaticSupplyPress" (0|8, standard signal, unsigned int, little endian) */
2409 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
2410 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2411 L4_MABX_B.SFunction1_o1_mk = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2412
2413 /* ...... "ParkingAnd_orTrailerAirPress" (8|8, standard signal, unsigned int, little endian) */
2414 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
2415 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2416 L4_MABX_B.SFunction1_o2_d4 = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2417
2418 /* ...... "ServiceBrakeCircuit1AirPress" (16|8, standard signal, unsigned int, little endian) */
2419 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
2420 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2421 L4_MABX_B.SFunction1_o3_gu = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2422
2423 /* ...... "ServiceBrakeCircuit2AirPress" (24|8, standard signal, unsigned int, little endian) */
2424 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
2425 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2426 L4_MABX_B.SFunction1_o4_ng = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2427
2428 /* ...... "AuxEquipmentSupplyPress" (32|8, standard signal, unsigned int, little endian) */
2429 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
2430 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2431 L4_MABX_B.SFunction1_o5_gz = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2432
2433 /* ...... "AirSuspensionSupplyPress" (40|8, standard signal, unsigned int, little endian) */
2434 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
2435 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2436 L4_MABX_B.SFunction1_o6_j4 = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2437
2438 /* ...... "AirCompressorStatus" (48|2, standard signal, unsigned int, little endian) */
2439 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
2440 CAN_Sgn.UnsignedSgn &= 0x00000003;
2441 L4_MABX_B.SFunction1_o7_gd = ((real_T) CAN_Sgn.UnsignedSgn);
2442
2443 /* ...... "PowertrainCircuitAirSupplyPress" (56|8, standard signal, unsigned int, little endian) */
2444 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
2445 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2446 L4_MABX_B.SFunction1_o8_e2 = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2447 }
2448 }
2449 } else {
2450 /* set RX status to 0 because no new message has arrived */
2451 L4_MABX_B.SFunction1_o9_hq5 = 0.0;
2452 }
2453 }
2454 }
2455
2456 /* End of Constant: '<S411>/Constant' */
2457 /* End of Outputs for SubSystem: '<S483>/AIR1' */
2458
2459 /* Outputs for Enabled SubSystem: '<S485>/AMB' incorporates:
2460 * EnablePort: '<S486>/Enable'
2461 */
2462 /* Constant: '<S412>/Constant' */
2463 if (L4_MABX_P.Constant_Value_ct) {
2464 /* S-Function (rti_commonblock): '<S486>/S-Function1' */
2465 /* This comment workarounds a code generation problem */
2466
2467 /* dSPACE RTICAN RX Message Block: "AMB" Id:419362048 */
2468 {
2469 UInt32 *CAN_Msg;
2470 static dsfloat time_old = 0.0;
2471
2472 /* Read status and timestamp info (previous message) */
2473 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF500].timestamp !=
2474 time_old) {
2475 /* ... save timestamp info for the calculation of the RX status
2476 during the consecutive sample hit*/
2477 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF500].
2478 timestamp;
2479
2480 /* ... set the processed flag to one */
2481 L4_MABX_B.SFunction1_o6_f0 = 1.0;
2482 L4_MABX_B.SFunction1_o7_ee = (real_T)
2483 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF500].timestamp;
2484 L4_MABX_B.SFunction1_o8_d = (real_T)
2485 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF500].deltatime;
2486 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF500].data;
2487
2488 /* Decode CAN message */
2489 {
2490 {
2491 rtican_Signal_t CAN_Sgn;
2492
2493 /* ...... "BarometricPress" (0|8, standard signal, unsigned int, little endian) */
2494 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
2495 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2496 L4_MABX_B.SFunction1_o1_ms = 0.5 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2497
2498 /* ...... "CabInteriorTemp" (8|16, standard signal, unsigned int, little endian) */
2499 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
2500 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
2501 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
2502 L4_MABX_B.SFunction1_o2_n0a = -273 + ( 0.03125 * ( ((real_T)
2503 CAN_Sgn.UnsignedSgn) ) );
2504
2505 /* ...... "AmbientAirTemp" (24|16, standard signal, unsigned int, little endian) */
2506 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
2507 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
2508 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
2509 L4_MABX_B.SFunction1_o3_ev = -273 + ( 0.03125 * ( ((real_T)
2510 CAN_Sgn.UnsignedSgn) ) );
2511
2512 /* ...... "EngAirIntakeTemp" (40|8, standard signal, unsigned int, little endian) */
2513 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
2514 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2515 L4_MABX_B.SFunction1_o4_lo = -40 + ( ((real_T) CAN_Sgn.UnsignedSgn) );
2516
2517 /* ...... "RoadSurfaceTemp" (48|16, standard signal, unsigned int, little endian) */
2518 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
2519 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[7];
2520 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
2521 L4_MABX_B.SFunction1_o5_a = -273 + ( 0.03125 * ( ((real_T)
2522 CAN_Sgn.UnsignedSgn) ) );
2523 }
2524 }
2525 } else {
2526 /* set RX status to 0 because no new message has arrived */
2527 L4_MABX_B.SFunction1_o6_f0 = 0.0;
2528 }
2529 }
2530 }
2531
2532 /* End of Constant: '<S412>/Constant' */
2533 /* End of Outputs for SubSystem: '<S485>/AMB' */
2534
2535 /* Outputs for Atomic SubSystem: '<S815>/CAN_TX_1000ms' */
2536
2537 /* RateTransition: '<S835>/TmpRTBAtAIR1Inport1' */
2538 if (L4_MABX_M->Timing.RateInteraction.TID0_6 == 1) {
2539 L4_MABX_B.PneumaticSupplyPress = L4_MABX_B.SFunction1_o1_mk;
2540 L4_MABX_B.ParkingAnd_orTrailerAirPress = L4_MABX_B.SFunction1_o2_d4;
2541 L4_MABX_B.ServiceBrakeCircuit1AirPress = L4_MABX_B.SFunction1_o3_gu;
2542 L4_MABX_B.ServiceBrakeCircuit2AirPress = L4_MABX_B.SFunction1_o4_ng;
2543 L4_MABX_B.AuxEquipmentSupplyPress = L4_MABX_B.SFunction1_o5_gz;
2544 L4_MABX_B.AirSuspensionSupplyPress = L4_MABX_B.SFunction1_o6_j4;
2545 L4_MABX_B.AirCompressorStatus = L4_MABX_B.SFunction1_o7_gd;
2546 L4_MABX_B.PowertrainCircuitAirSupplyPress = L4_MABX_B.SFunction1_o8_e2;
2547 L4_MABX_B.BarometricPress_k = L4_MABX_B.SFunction1_o1_ms;
2548 L4_MABX_B.CabInteriorTemp = L4_MABX_B.SFunction1_o2_n0a;
2549 L4_MABX_B.AmbientAirTemp_a = L4_MABX_B.SFunction1_o3_ev;
2550 L4_MABX_B.EngAirIntakeTemp = L4_MABX_B.SFunction1_o4_lo;
2551 L4_MABX_B.RoadSurfaceTemp = L4_MABX_B.SFunction1_o5_a;
2552 }
2553
2554 /* End of Outputs for SubSystem: '<S815>/CAN_TX_1000ms' */
2555
2556 /* S-Function (rti_commonblock): '<S720>/S-Function1' */
2557 /* This comment workarounds a code generation problem */
2558
2559 /* DataTypeConversion: '<S402>/EStopSwActive' */
2560 L4_MABX_B.EStopSwActive = L4_MABX_B.SFunction1_a;
2561
2562 /* Logic: '<S402>/Logical Operator1' */
2563 EStop = !L4_MABX_B.EStopSwActive;
2564
2565 /* S-Function (rti_commonblock): '<S719>/S-Function1' */
2566 /* This comment workarounds a code generation problem */
2567
2568 /* S-Function (sfix_bitop): '<S809>/Operator' */
2569 L4_MABX_B.Operator_nd = (L4_MABX_B.SFunction1_n &&
2570 (L4_MABX_P.Operator_BitMask_mx != 0));
2571
2572 /* DataTypeConversion: '<S809>/DataType' */
2573 L4_MABX_B.DataType_mk = L4_MABX_B.Operator_nd;
2574
2575 /* Logic: '<S727>/Logical Operator' */
2576 L4_MABX_B.LogicalOperator = !L4_MABX_B.DataType_mk;
2577
2578 /* S-Function (rti_commonblock): '<S722>/S-Function1' */
2579 /* This comment workarounds a code generation problem */
2580
2581 /* S-Function (sfix_bitop): '<S810>/Operator' */
2582 L4_MABX_B.Operator_eg = (L4_MABX_B.SFunction1_k &&
2583 (L4_MABX_P.Operator_BitMask_nu != 0));
2584
2585 /* DataTypeConversion: '<S810>/DataType' */
2586 L4_MABX_B.DataType_ne = L4_MABX_B.Operator_eg;
2587
2588 /* Logic: '<S727>/AND2' */
2589 L4_MABX_B.AND2 = (L4_MABX_B.LogicalOperator && L4_MABX_B.DataType_ne);
2590
2591 /* Chart: '<S811>/Chart' */
2592 /* Gateway: DIGITAL/Signal Check/RationalityCheck/Chart */
2593 /* During: DIGITAL/Signal Check/RationalityCheck/Chart */
2594 if (L4_MABX_DW.is_active_c5_SUB_ECU_L4_MABX_HW == 0U) {
2595 /* Entry: DIGITAL/Signal Check/RationalityCheck/Chart */
2596 L4_MABX_DW.is_active_c5_SUB_ECU_L4_MABX_HW = 1U;
2597
2598 /* Entry Internal: DIGITAL/Signal Check/RationalityCheck/Chart */
2599 /* Transition: '<S812>:6' */
2600 L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_init_p;
2601
2602 /* Entry 'init': '<S812>:1' */
2603 L4_MABX_B.DiagPassed = false;
2604 } else {
2605 switch (L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf) {
2606 case L4_MABX_IN_DiagPassed:
2607 /* During 'DiagPassed': '<S812>:4' */
2608 break;
2609
2610 case L4_MABX_IN_SwitchOff:
2611 /* During 'SwitchOff': '<S812>:2' */
2612 if (L4_MABX_B.AND2) {
2613 /* Transition: '<S812>:8' */
2614 L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_DiagPassed;
2615
2616 /* Entry 'DiagPassed': '<S812>:4' */
2617 L4_MABX_B.DiagPassed = true;
2618 }
2619 break;
2620
2621 case L4_MABX_IN_SwitchOn:
2622 /* During 'SwitchOn': '<S812>:3' */
2623 if (!L4_MABX_B.AND2) {
2624 /* Transition: '<S812>:9' */
2625 L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_SwitchOff;
2626 }
2627 break;
2628
2629 default:
2630 /* During 'init': '<S812>:1' */
2631 if (!L4_MABX_B.AND2) {
2632 /* Transition: '<S812>:5' */
2633 L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_SwitchOff;
2634 } else {
2635 /* Transition: '<S812>:7' */
2636 L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_SwitchOn;
2637 }
2638 break;
2639 }
2640 }
2641
2642 /* End of Chart: '<S811>/Chart' */
2643
2644 /* Switch: '<S727>/Switch' incorporates:
2645 * Constant: '<S727>/OverrideOperatorEnableSW_Default'
2646 */
2647 if (L4_MABX_B.DiagPassed) {
2648 EnableSw = L4_MABX_B.AND2;
2649 } else {
2650 EnableSw = L4_MABX_P.OverrideOperatorEnableSW_Defaul;
2651 }
2652
2653 /* End of Switch: '<S727>/Switch' */
2654
2655 /* S-Function (rti_commonblock): '<S724>/S-Function1' */
2656 /* This comment workarounds a code generation problem */
2657
2658 /* DataTypeConversion: '<S402>/Data Type Conversion2' */
2659 L4_MABX_B.Pedal_1_pwm_freq_raw_value = L4_MABX_B.SFunction1_o1;
2660
2661 /* RelationalOperator: '<S757>/min_relop' incorporates:
2662 * Constant: '<S729>/PWMAFreqRngMin'
2663 */
2664 L4_MABX_B.min_relop = (L4_MABX_P.PWMAFreqRngMin_Value <
2665 L4_MABX_B.Pedal_1_pwm_freq_raw_value);
2666
2667 /* RelationalOperator: '<S757>/max_relop' incorporates:
2668 * Constant: '<S729>/PWMAFreqRngMax'
2669 */
2670 L4_MABX_B.max_relop = (L4_MABX_B.Pedal_1_pwm_freq_raw_value <
2671 L4_MABX_P.PWMAFreqRngMax_Value);
2672
2673 /* Logic: '<S757>/conjunction' */
2674 L4_MABX_B.conjunction = (L4_MABX_B.min_relop && L4_MABX_B.max_relop);
2675
2676 /* UnitDelay: '<S762>/FixPt Unit Delay2' */
2677 L4_MABX_B.FixPtUnitDelay2 = L4_MABX_DW.FixPtUnitDelay2_DSTATE;
2678
2679 /* UnitDelay: '<S762>/FixPt Unit Delay1' */
2680 L4_MABX_B.Xold = L4_MABX_DW.FixPtUnitDelay1_DSTATE;
2681
2682 /* Switch: '<S762>/Init' incorporates:
2683 * Constant: '<S729>/PWMAFreqRngFaultLimMin'
2684 */
2685 if (L4_MABX_B.FixPtUnitDelay2 != 0) {
2686 L4_MABX_B.Init = L4_MABX_P.PWMAFreqRngFaultLimMin_Value;
2687 } else {
2688 L4_MABX_B.Init = L4_MABX_B.Xold;
2689 }
2690
2691 /* End of Switch: '<S762>/Init' */
2692
2693 /* Sum: '<S758>/FixPt Sum1' incorporates:
2694 * Constant: '<S758>/FixPt Constant'
2695 */
2696 L4_MABX_B.FixPtSum1 = L4_MABX_B.Init - L4_MABX_P.FixPtConstant_Value_a;
2697
2698 /* Sum: '<S761>/FixPt Sum1' incorporates:
2699 * Constant: '<S761>/FixPt Constant'
2700 */
2701 L4_MABX_B.FixPtSum1_e = L4_MABX_B.Init + L4_MABX_P.FixPtConstant_Value_e;
2702
2703 /* Outputs for Atomic SubSystem: '<S745>/If_Then_Else3' */
2704 L4_MABX_If_Then_Else(L4_MABX_B.conjunction, L4_MABX_B.FixPtSum1,
2705 L4_MABX_B.FixPtSum1_e, &L4_MABX_B.If_Then_Else3_e);
2706
2707 /* End of Outputs for SubSystem: '<S745>/If_Then_Else3' */
2708
2709 /* RelationalOperator: '<S759>/Relational Operator1' incorporates:
2710 * Constant: '<S729>/PWMAFreqRngFaultLimMax'
2711 */
2712 L4_MABX_B.RelationalOperator1 = (L4_MABX_B.If_Then_Else3_e.Switch >=
2713 L4_MABX_P.PWMAFreqRngFaultLimMax_Value);
2714
2715 /* RelationalOperator: '<S759>/Relational Operator' incorporates:
2716 * Constant: '<S729>/PWMAFreqRngFaultLimMin'
2717 */
2718 L4_MABX_B.RelationalOperator = (L4_MABX_B.If_Then_Else3_e.Switch <=
2719 L4_MABX_P.PWMAFreqRngFaultLimMin_Value);
2720
2721 /* Outputs for Atomic SubSystem: '<S759>/If_Then_Else1' */
2722
2723 /* Constant: '<S729>/PWMAFreqRngFaultLimMin' */
2724 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator,
2725 L4_MABX_P.PWMAFreqRngFaultLimMin_Value,
2726 L4_MABX_B.If_Then_Else3_e.Switch,
2727 &L4_MABX_B.If_Then_Else1_l);
2728
2729 /* End of Outputs for SubSystem: '<S759>/If_Then_Else1' */
2730
2731 /* Outputs for Atomic SubSystem: '<S759>/If_Then_Else' */
2732
2733 /* Constant: '<S729>/PWMAFreqRngFaultLimMax' */
2734 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1,
2735 L4_MABX_P.PWMAFreqRngFaultLimMax_Value,
2736 L4_MABX_B.If_Then_Else1_l.Switch,
2737 &L4_MABX_B.If_Then_Else_g);
2738
2739 /* End of Outputs for SubSystem: '<S759>/If_Then_Else' */
2740
2741 /* RelationalOperator: '<S745>/Relational Operator9' incorporates:
2742 * Constant: '<S729>/PWMAFreqRngFaultLimMin'
2743 */
2744 L4_MABX_B.F_Fault_Soft = (L4_MABX_B.If_Then_Else_g.Switch !=
2745 L4_MABX_P.PWMAFreqRngFaultLimMin_Value);
2746
2747 /* Gain: '<S402>/Gain' */
2748 L4_MABX_B.Gain = L4_MABX_P.Gain_Gain_g3 * L4_MABX_B.SFunction1_o2;
2749
2750 /* DataTypeConversion: '<S402>/Data Type Conversion9' */
2751 L4_MABX_B.Pedal_1_pwm_dc_raw_value = L4_MABX_B.Gain;
2752
2753 /* RelationalOperator: '<S749>/min_relop' incorporates:
2754 * Constant: '<S729>/PWMADCRngMin'
2755 */
2756 L4_MABX_B.min_relop_b = (L4_MABX_P.PWMADCRngMin_Value <
2757 L4_MABX_B.Pedal_1_pwm_dc_raw_value);
2758
2759 /* RelationalOperator: '<S749>/max_relop' incorporates:
2760 * Constant: '<S729>/PWMADCRngMax'
2761 */
2762 L4_MABX_B.max_relop_j = (L4_MABX_B.Pedal_1_pwm_dc_raw_value <
2763 L4_MABX_P.PWMADCRngMax_Value);
2764
2765 /* Logic: '<S749>/conjunction' */
2766 L4_MABX_B.conjunction_c = (L4_MABX_B.min_relop_b && L4_MABX_B.max_relop_j);
2767
2768 /* UnitDelay: '<S754>/FixPt Unit Delay2' */
2769 L4_MABX_B.FixPtUnitDelay2_f = L4_MABX_DW.FixPtUnitDelay2_DSTATE_n;
2770
2771 /* UnitDelay: '<S754>/FixPt Unit Delay1' */
2772 L4_MABX_B.Xold_f = L4_MABX_DW.FixPtUnitDelay1_DSTATE_j;
2773
2774 /* Switch: '<S754>/Init' incorporates:
2775 * Constant: '<S729>/PWMADCRngFaultLimMin'
2776 */
2777 if (L4_MABX_B.FixPtUnitDelay2_f != 0) {
2778 L4_MABX_B.Init_p = L4_MABX_P.PWMADCRngFaultLimMin_Value;
2779 } else {
2780 L4_MABX_B.Init_p = L4_MABX_B.Xold_f;
2781 }
2782
2783 /* End of Switch: '<S754>/Init' */
2784
2785 /* Sum: '<S750>/FixPt Sum1' incorporates:
2786 * Constant: '<S750>/FixPt Constant'
2787 */
2788 L4_MABX_B.FixPtSum1_f = L4_MABX_B.Init_p - L4_MABX_P.FixPtConstant_Value_i;
2789
2790 /* Sum: '<S753>/FixPt Sum1' incorporates:
2791 * Constant: '<S753>/FixPt Constant'
2792 */
2793 L4_MABX_B.FixPtSum1_j = L4_MABX_B.Init_p + L4_MABX_P.FixPtConstant_Value_b;
2794
2795 /* Outputs for Atomic SubSystem: '<S744>/If_Then_Else3' */
2796 L4_MABX_If_Then_Else(L4_MABX_B.conjunction_c, L4_MABX_B.FixPtSum1_f,
2797 L4_MABX_B.FixPtSum1_j, &L4_MABX_B.If_Then_Else3);
2798
2799 /* End of Outputs for SubSystem: '<S744>/If_Then_Else3' */
2800
2801 /* RelationalOperator: '<S751>/Relational Operator1' incorporates:
2802 * Constant: '<S729>/PWMADCRngFaultLimMax'
2803 */
2804 L4_MABX_B.RelationalOperator1_m = (L4_MABX_B.If_Then_Else3.Switch >=
2805 L4_MABX_P.PWMADCRngFaultLimMax_Value);
2806
2807 /* RelationalOperator: '<S751>/Relational Operator' incorporates:
2808 * Constant: '<S729>/PWMADCRngFaultLimMin'
2809 */
2810 L4_MABX_B.RelationalOperator_b = (L4_MABX_B.If_Then_Else3.Switch <=
2811 L4_MABX_P.PWMADCRngFaultLimMin_Value);
2812
2813 /* Outputs for Atomic SubSystem: '<S751>/If_Then_Else1' */
2814
2815 /* Constant: '<S729>/PWMADCRngFaultLimMin' */
2816 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_b,
2817 L4_MABX_P.PWMADCRngFaultLimMin_Value,
2818 L4_MABX_B.If_Then_Else3.Switch,
2819 &L4_MABX_B.If_Then_Else1_b);
2820
2821 /* End of Outputs for SubSystem: '<S751>/If_Then_Else1' */
2822
2823 /* Outputs for Atomic SubSystem: '<S751>/If_Then_Else' */
2824
2825 /* Constant: '<S729>/PWMADCRngFaultLimMax' */
2826 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_m,
2827 L4_MABX_P.PWMADCRngFaultLimMax_Value,
2828 L4_MABX_B.If_Then_Else1_b.Switch,
2829 &L4_MABX_B.If_Then_Else_c);
2830
2831 /* End of Outputs for SubSystem: '<S751>/If_Then_Else' */
2832
2833 /* RelationalOperator: '<S744>/Relational Operator9' incorporates:
2834 * Constant: '<S729>/PWMADCRngFaultLimMin'
2835 */
2836 L4_MABX_B.F_Fault_Soft_k = (L4_MABX_B.If_Then_Else_c.Switch !=
2837 L4_MABX_P.PWMADCRngFaultLimMin_Value);
2838
2839 /* Logic: '<S729>/Logical Operator2' */
2840 L4_MABX_B.LogicalOperator2 = (L4_MABX_B.F_Fault_Soft ||
2841 L4_MABX_B.F_Fault_Soft_k);
2842
2843 /* RelationalOperator: '<S745>/Relational Operator8' incorporates:
2844 * Constant: '<S729>/PWMAFreqRngFaultLimMax'
2845 */
2846 L4_MABX_B.F_Fault_Hard = (L4_MABX_P.PWMAFreqRngFaultLimMax_Value <=
2847 L4_MABX_B.If_Then_Else_g.Switch);
2848
2849 /* RelationalOperator: '<S744>/Relational Operator8' incorporates:
2850 * Constant: '<S729>/PWMADCRngFaultLimMax'
2851 */
2852 L4_MABX_B.F_Fault_Hard_j = (L4_MABX_P.PWMADCRngFaultLimMax_Value <=
2853 L4_MABX_B.If_Then_Else_c.Switch);
2854
2855 /* Logic: '<S729>/Logical Operator1' */
2856 L4_MABX_B.LogicalOperator1 = (L4_MABX_B.F_Fault_Hard ||
2857 L4_MABX_B.F_Fault_Hard_j);
2858
2859 /* Chart: '<S729>/Health State Machine PWM Sensor 1' */
2860 /* Gateway: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 1 */
2861 /* During: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 1 */
2862 if (L4_MABX_DW.is_active_c9_SUB_ECU_L4_MABX_HW == 0U) {
2863 /* Entry: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 1 */
2864 L4_MABX_DW.is_active_c9_SUB_ECU_L4_MABX_HW = 1U;
2865
2866 /* Entry Internal: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 1 */
2867 /* Transition: '<S742>:2' */
2868 L4_MABX_DW.is_c9_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_NO_FAILURE;
2869
2870 /* Entry 'NO_FAILURE': '<S742>:1' */
2871 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
2872 } else if (L4_MABX_DW.is_c9_SUB_ECU_L4_MABX_HW_Interf ==
2873 L4_MABX_IN_FAILURE_DETECTED) {
2874 /* During 'FAILURE_DETECTED': '<S742>:6' */
2875 if (L4_MABX_DW.is_FAILURE_DETECTED_p == L4_MABX_IN_ERROR) {
2876 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_ACTIVE;
2877
2878 /* During 'ERROR': '<S742>:8' */
2879 if (!L4_MABX_B.LogicalOperator1) {
2880 /* Transition: '<S742>:17' */
2881 L4_MABX_DW.is_FAILURE_DETECTED_p = L4_MABX_IN_PENDING;
2882
2883 /* Entry 'PENDING': '<S742>:7' */
2884 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_PENDING;
2885 }
2886 } else {
2887 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_PENDING;
2888
2889 /* During 'PENDING': '<S742>:7' */
2890 zcEvent = ((!L4_MABX_B.LogicalOperator2) && (!L4_MABX_B.LogicalOperator1));
2891 if (zcEvent) {
2892 /* Transition: '<S742>:9' */
2893 L4_MABX_DW.is_FAILURE_DETECTED_p = L4_MABX_IN_NO_ACTIVE_CHILD;
2894 L4_MABX_DW.is_c9_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_NO_FAILURE;
2895
2896 /* Entry 'NO_FAILURE': '<S742>:1' */
2897 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
2898 } else {
2899 if (L4_MABX_B.LogicalOperator1) {
2900 /* Transition: '<S742>:12' */
2901 L4_MABX_DW.is_FAILURE_DETECTED_p = L4_MABX_IN_ERROR;
2902
2903 /* Entry 'ERROR': '<S742>:8' */
2904 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_ACTIVE;
2905 }
2906 }
2907 }
2908 } else {
2909 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
2910
2911 /* During 'NO_FAILURE': '<S742>:1' */
2912 zcEvent = (L4_MABX_B.LogicalOperator2 || L4_MABX_B.LogicalOperator1);
2913 if (zcEvent) {
2914 /* Transition: '<S742>:10' */
2915 L4_MABX_DW.is_c9_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_FAILURE_DETECTED;
2916
2917 /* Entry 'FAILURE_DETECTED': '<S742>:6' */
2918 /* Entry Internal 'FAILURE_DETECTED': '<S742>:6' */
2919 /* Transition: '<S742>:11' */
2920 L4_MABX_DW.is_FAILURE_DETECTED_p = L4_MABX_IN_PENDING;
2921
2922 /* Entry 'PENDING': '<S742>:7' */
2923 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_PENDING;
2924 }
2925 }
2926
2927 /* End of Chart: '<S729>/Health State Machine PWM Sensor 1' */
2928
2929 /* RelationalOperator: '<S740>/Compare' incorporates:
2930 * Constant: '<S740>/Constant'
2931 */
2932 L4_MABX_B.Compare = (L4_MABX_B.Pedal_1_pwm_health_state ==
2933 L4_MABX_P.CompareToConstant_const_cn);
2934
2935 /* S-Function (rti_commonblock): '<S725>/S-Function1' */
2936 /* This comment workarounds a code generation problem */
2937
2938 /* DataTypeConversion: '<S402>/Data Type Conversion3' */
2939 L4_MABX_B.Pedal_2_pwm_freq_raw_value = L4_MABX_B.SFunction1_o1_d;
2940
2941 /* RelationalOperator: '<S773>/min_relop' incorporates:
2942 * Constant: '<S729>/PWMBFreqRngMin1'
2943 */
2944 L4_MABX_B.min_relop_c = (L4_MABX_P.PWMBFreqRngMin1_Value <
2945 L4_MABX_B.Pedal_2_pwm_freq_raw_value);
2946
2947 /* RelationalOperator: '<S773>/max_relop' incorporates:
2948 * Constant: '<S729>/PWMBFreqRngMax1'
2949 */
2950 L4_MABX_B.max_relop_a = (L4_MABX_B.Pedal_2_pwm_freq_raw_value <
2951 L4_MABX_P.PWMBFreqRngMax1_Value);
2952
2953 /* Logic: '<S773>/conjunction' */
2954 L4_MABX_B.conjunction_cj = (L4_MABX_B.min_relop_c && L4_MABX_B.max_relop_a);
2955
2956 /* UnitDelay: '<S778>/FixPt Unit Delay2' */
2957 L4_MABX_B.FixPtUnitDelay2_j = L4_MABX_DW.FixPtUnitDelay2_DSTATE_f;
2958
2959 /* UnitDelay: '<S778>/FixPt Unit Delay1' */
2960 L4_MABX_B.Xold_l = L4_MABX_DW.FixPtUnitDelay1_DSTATE_m;
2961
2962 /* Switch: '<S778>/Init' incorporates:
2963 * Constant: '<S729>/PWMBFreqRngFaultLimMin1'
2964 */
2965 if (L4_MABX_B.FixPtUnitDelay2_j != 0) {
2966 L4_MABX_B.Init_j = L4_MABX_P.PWMBFreqRngFaultLimMin1_Value;
2967 } else {
2968 L4_MABX_B.Init_j = L4_MABX_B.Xold_l;
2969 }
2970
2971 /* End of Switch: '<S778>/Init' */
2972
2973 /* Sum: '<S774>/FixPt Sum1' incorporates:
2974 * Constant: '<S774>/FixPt Constant'
2975 */
2976 L4_MABX_B.FixPtSum1_l = L4_MABX_B.Init_j - L4_MABX_P.FixPtConstant_Value_d;
2977
2978 /* Sum: '<S777>/FixPt Sum1' incorporates:
2979 * Constant: '<S777>/FixPt Constant'
2980 */
2981 L4_MABX_B.FixPtSum1_g = L4_MABX_B.Init_j + L4_MABX_P.FixPtConstant_Value_ib;
2982
2983 /* Outputs for Atomic SubSystem: '<S747>/If_Then_Else3' */
2984 L4_MABX_If_Then_Else(L4_MABX_B.conjunction_cj, L4_MABX_B.FixPtSum1_l,
2985 L4_MABX_B.FixPtSum1_g, &L4_MABX_B.If_Then_Else3_e5);
2986
2987 /* End of Outputs for SubSystem: '<S747>/If_Then_Else3' */
2988
2989 /* RelationalOperator: '<S775>/Relational Operator1' incorporates:
2990 * Constant: '<S729>/PWMBFreqRngFaultLimMax1'
2991 */
2992 L4_MABX_B.RelationalOperator1_f = (L4_MABX_B.If_Then_Else3_e5.Switch >=
2993 L4_MABX_P.PWMBFreqRngFaultLimMax1_Value);
2994
2995 /* RelationalOperator: '<S775>/Relational Operator' incorporates:
2996 * Constant: '<S729>/PWMBFreqRngFaultLimMin1'
2997 */
2998 L4_MABX_B.RelationalOperator_f = (L4_MABX_B.If_Then_Else3_e5.Switch <=
2999 L4_MABX_P.PWMBFreqRngFaultLimMin1_Value);
3000
3001 /* Outputs for Atomic SubSystem: '<S775>/If_Then_Else1' */
3002
3003 /* Constant: '<S729>/PWMBFreqRngFaultLimMin1' */
3004 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_f,
3005 L4_MABX_P.PWMBFreqRngFaultLimMin1_Value,
3006 L4_MABX_B.If_Then_Else3_e5.Switch,
3007 &L4_MABX_B.If_Then_Else1_bt);
3008
3009 /* End of Outputs for SubSystem: '<S775>/If_Then_Else1' */
3010
3011 /* Outputs for Atomic SubSystem: '<S775>/If_Then_Else' */
3012
3013 /* Constant: '<S729>/PWMBFreqRngFaultLimMax1' */
3014 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_f,
3015 L4_MABX_P.PWMBFreqRngFaultLimMax1_Value,
3016 L4_MABX_B.If_Then_Else1_bt.Switch,
3017 &L4_MABX_B.If_Then_Else_d);
3018
3019 /* End of Outputs for SubSystem: '<S775>/If_Then_Else' */
3020
3021 /* RelationalOperator: '<S747>/Relational Operator9' incorporates:
3022 * Constant: '<S729>/PWMBFreqRngFaultLimMin1'
3023 */
3024 L4_MABX_B.F_Fault_Soft_o = (L4_MABX_B.If_Then_Else_d.Switch !=
3025 L4_MABX_P.PWMBFreqRngFaultLimMin1_Value);
3026
3027 /* Gain: '<S402>/Gain1' */
3028 L4_MABX_B.Gain1 = L4_MABX_P.Gain1_Gain_m * L4_MABX_B.SFunction1_o2_p;
3029
3030 /* DataTypeConversion: '<S402>/Data Type Conversion1' */
3031 L4_MABX_B.Pedal_2_pwm_dc_raw_value = L4_MABX_B.Gain1;
3032
3033 /* RelationalOperator: '<S765>/min_relop' incorporates:
3034 * Constant: '<S729>/PWMBDCRngMin1'
3035 */
3036 L4_MABX_B.min_relop_j = (L4_MABX_P.PWMBDCRngMin1_Value <
3037 L4_MABX_B.Pedal_2_pwm_dc_raw_value);
3038
3039 /* RelationalOperator: '<S765>/max_relop' incorporates:
3040 * Constant: '<S729>/PWMBDCRngMax1'
3041 */
3042 L4_MABX_B.max_relop_m = (L4_MABX_B.Pedal_2_pwm_dc_raw_value <
3043 L4_MABX_P.PWMBDCRngMax1_Value);
3044
3045 /* Logic: '<S765>/conjunction' */
3046 L4_MABX_B.conjunction_d = (L4_MABX_B.min_relop_j && L4_MABX_B.max_relop_m);
3047
3048 /* UnitDelay: '<S770>/FixPt Unit Delay2' */
3049 L4_MABX_B.FixPtUnitDelay2_p = L4_MABX_DW.FixPtUnitDelay2_DSTATE_e;
3050
3051 /* UnitDelay: '<S770>/FixPt Unit Delay1' */
3052 L4_MABX_B.Xold_m = L4_MABX_DW.FixPtUnitDelay1_DSTATE_mk;
3053
3054 /* Switch: '<S770>/Init' incorporates:
3055 * Constant: '<S729>/PWMBDCRngFaultLimMin1'
3056 */
3057 if (L4_MABX_B.FixPtUnitDelay2_p != 0) {
3058 L4_MABX_B.Init_ps = L4_MABX_P.PWMBDCRngFaultLimMin1_Value;
3059 } else {
3060 L4_MABX_B.Init_ps = L4_MABX_B.Xold_m;
3061 }
3062
3063 /* End of Switch: '<S770>/Init' */
3064
3065 /* Sum: '<S766>/FixPt Sum1' incorporates:
3066 * Constant: '<S766>/FixPt Constant'
3067 */
3068 L4_MABX_B.FixPtSum1_m = L4_MABX_B.Init_ps - L4_MABX_P.FixPtConstant_Value_g;
3069
3070 /* Sum: '<S769>/FixPt Sum1' incorporates:
3071 * Constant: '<S769>/FixPt Constant'
3072 */
3073 L4_MABX_B.FixPtSum1_o = L4_MABX_B.Init_ps + L4_MABX_P.FixPtConstant_Value_k;
3074
3075 /* Outputs for Atomic SubSystem: '<S746>/If_Then_Else3' */
3076 L4_MABX_If_Then_Else(L4_MABX_B.conjunction_d, L4_MABX_B.FixPtSum1_m,
3077 L4_MABX_B.FixPtSum1_o, &L4_MABX_B.If_Then_Else3_b);
3078
3079 /* End of Outputs for SubSystem: '<S746>/If_Then_Else3' */
3080
3081 /* RelationalOperator: '<S767>/Relational Operator1' incorporates:
3082 * Constant: '<S729>/PWMBDCRngFaultLimMax1'
3083 */
3084 L4_MABX_B.RelationalOperator1_g = (L4_MABX_B.If_Then_Else3_b.Switch >=
3085 L4_MABX_P.PWMBDCRngFaultLimMax1_Value);
3086
3087 /* RelationalOperator: '<S767>/Relational Operator' incorporates:
3088 * Constant: '<S729>/PWMBDCRngFaultLimMin1'
3089 */
3090 L4_MABX_B.RelationalOperator_e = (L4_MABX_B.If_Then_Else3_b.Switch <=
3091 L4_MABX_P.PWMBDCRngFaultLimMin1_Value);
3092
3093 /* Outputs for Atomic SubSystem: '<S767>/If_Then_Else1' */
3094
3095 /* Constant: '<S729>/PWMBDCRngFaultLimMin1' */
3096 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_e,
3097 L4_MABX_P.PWMBDCRngFaultLimMin1_Value,
3098 L4_MABX_B.If_Then_Else3_b.Switch,
3099 &L4_MABX_B.If_Then_Else1_bd);
3100
3101 /* End of Outputs for SubSystem: '<S767>/If_Then_Else1' */
3102
3103 /* Outputs for Atomic SubSystem: '<S767>/If_Then_Else' */
3104
3105 /* Constant: '<S729>/PWMBDCRngFaultLimMax1' */
3106 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_g,
3107 L4_MABX_P.PWMBDCRngFaultLimMax1_Value,
3108 L4_MABX_B.If_Then_Else1_bd.Switch,
3109 &L4_MABX_B.If_Then_Else_k);
3110
3111 /* End of Outputs for SubSystem: '<S767>/If_Then_Else' */
3112
3113 /* RelationalOperator: '<S746>/Relational Operator9' incorporates:
3114 * Constant: '<S729>/PWMBDCRngFaultLimMin1'
3115 */
3116 L4_MABX_B.F_Fault_Soft_a = (L4_MABX_B.If_Then_Else_k.Switch !=
3117 L4_MABX_P.PWMBDCRngFaultLimMin1_Value);
3118
3119 /* Logic: '<S729>/Logical Operator4' */
3120 L4_MABX_B.LogicalOperator4 = (L4_MABX_B.F_Fault_Soft_o ||
3121 L4_MABX_B.F_Fault_Soft_a);
3122
3123 /* RelationalOperator: '<S747>/Relational Operator8' incorporates:
3124 * Constant: '<S729>/PWMBFreqRngFaultLimMax1'
3125 */
3126 L4_MABX_B.F_Fault_Hard_e = (L4_MABX_P.PWMBFreqRngFaultLimMax1_Value <=
3127 L4_MABX_B.If_Then_Else_d.Switch);
3128
3129 /* RelationalOperator: '<S746>/Relational Operator8' incorporates:
3130 * Constant: '<S729>/PWMBDCRngFaultLimMax1'
3131 */
3132 L4_MABX_B.F_Fault_Hard_o = (L4_MABX_P.PWMBDCRngFaultLimMax1_Value <=
3133 L4_MABX_B.If_Then_Else_k.Switch);
3134
3135 /* Logic: '<S729>/Logical Operator3' */
3136 L4_MABX_B.LogicalOperator3 = (L4_MABX_B.F_Fault_Hard_e ||
3137 L4_MABX_B.F_Fault_Hard_o);
3138
3139 /* Chart: '<S729>/Health State Machine PWM Sensor 2' */
3140 /* Gateway: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 2 */
3141 /* During: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 2 */
3142 if (L4_MABX_DW.is_active_c10_SUB_ECU_L4_MABX_H == 0U) {
3143 /* Entry: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 2 */
3144 L4_MABX_DW.is_active_c10_SUB_ECU_L4_MABX_H = 1U;
3145
3146 /* Entry Internal: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 2 */
3147 /* Transition: '<S743>:2' */
3148 L4_MABX_DW.is_c10_SUB_ECU_L4_MABX_HW_Inter = L4_MABX_IN_NO_FAILURE;
3149
3150 /* Entry 'NO_FAILURE': '<S743>:1' */
3151 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
3152 } else if (L4_MABX_DW.is_c10_SUB_ECU_L4_MABX_HW_Inter ==
3153 L4_MABX_IN_FAILURE_DETECTED) {
3154 /* During 'FAILURE_DETECTED': '<S743>:6' */
3155 if (L4_MABX_DW.is_FAILURE_DETECTED == L4_MABX_IN_ERROR) {
3156 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_ACTIVE;
3157
3158 /* During 'ERROR': '<S743>:8' */
3159 if (!L4_MABX_B.LogicalOperator3) {
3160 /* Transition: '<S743>:20' */
3161 L4_MABX_DW.is_FAILURE_DETECTED = L4_MABX_IN_PENDING;
3162
3163 /* Entry 'PENDING': '<S743>:7' */
3164 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_PENDING;
3165 }
3166 } else {
3167 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_PENDING;
3168
3169 /* During 'PENDING': '<S743>:7' */
3170 zcEvent = ((!L4_MABX_B.LogicalOperator4) && (!L4_MABX_B.LogicalOperator3));
3171 if (zcEvent) {
3172 /* Transition: '<S743>:9' */
3173 L4_MABX_DW.is_FAILURE_DETECTED = L4_MABX_IN_NO_ACTIVE_CHILD;
3174 L4_MABX_DW.is_c10_SUB_ECU_L4_MABX_HW_Inter = L4_MABX_IN_NO_FAILURE;
3175
3176 /* Entry 'NO_FAILURE': '<S743>:1' */
3177 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
3178 } else {
3179 if (L4_MABX_B.LogicalOperator3) {
3180 /* Transition: '<S743>:12' */
3181 L4_MABX_DW.is_FAILURE_DETECTED = L4_MABX_IN_ERROR;
3182
3183 /* Entry 'ERROR': '<S743>:8' */
3184 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_ACTIVE;
3185 }
3186 }
3187 }
3188 } else {
3189 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
3190
3191 /* During 'NO_FAILURE': '<S743>:1' */
3192 zcEvent = (L4_MABX_B.LogicalOperator4 || L4_MABX_B.LogicalOperator3);
3193 if (zcEvent) {
3194 /* Transition: '<S743>:10' */
3195 L4_MABX_DW.is_c10_SUB_ECU_L4_MABX_HW_Inter = L4_MABX_IN_FAILURE_DETECTED;
3196
3197 /* Entry 'FAILURE_DETECTED': '<S743>:6' */
3198 /* Entry Internal 'FAILURE_DETECTED': '<S743>:6' */
3199 /* Transition: '<S743>:11' */
3200 L4_MABX_DW.is_FAILURE_DETECTED = L4_MABX_IN_PENDING;
3201
3202 /* Entry 'PENDING': '<S743>:7' */
3203 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_PENDING;
3204 }
3205 }
3206
3207 /* End of Chart: '<S729>/Health State Machine PWM Sensor 2' */
3208
3209 /* RelationalOperator: '<S741>/Compare' incorporates:
3210 * Constant: '<S741>/Constant'
3211 */
3212 L4_MABX_B.Compare_i = (L4_MABX_B.Pedal_2_pwm_health_state ==
3213 L4_MABX_P.CompareToConstant2_const_h);
3214
3215 /* Logic: '<S729>/Logical Operator5' */
3216 L4_MABX_B.F_Pedal_pwm_sens_total_failure = (L4_MABX_B.Compare &&
3217 L4_MABX_B.Compare_i);
3218
3219 /* UnitDelay: '<S732>/Unit_Delay' */
3220 L4_MABX_B.Unit_Delay_iw = L4_MABX_DW.Unit_Delay_DSTATE_ot;
3221
3222 /* UnitDelay: '<S799>/Unit_Delay1' */
3223 L4_MABX_B.Unit_Delay1 = L4_MABX_DW.Unit_Delay1_DSTATE;
3224
3225 /* Logic: '<S799>/Logical Operator' */
3226 L4_MABX_B.LogicalOperator_i = (L4_MABX_B.Unit_Delay_iw ||
3227 L4_MABX_B.Unit_Delay1);
3228
3229 /* MinMax: '<S799>/MinMax1' incorporates:
3230 * Constant: '<S732>/PEDAL_PWM_SENSOR_DATA_APV.T1_CONST'
3231 * Constant: '<S732>/dT'
3232 */
3233 DeltaTime = L4_MABX_P.dT_Value;
3234 PositionFinalLimited = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVT1_CON;
3235 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
3236 PositionFinalLimited = DeltaTime;
3237 }
3238
3239 L4_MABX_B.MinMax1 = PositionFinalLimited;
3240
3241 /* End of MinMax: '<S799>/MinMax1' */
3242
3243 /* Saturate: '<S799>/Saturation' */
3244 DeltaTime = L4_MABX_B.MinMax1;
3245 Time56 = L4_MABX_P.Saturation_LowerSat_o;
3246 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_j;
3247 if (DeltaTime > PositionFinalLimited) {
3248 L4_MABX_B.Saturation = PositionFinalLimited;
3249 } else if (DeltaTime < Time56) {
3250 L4_MABX_B.Saturation = Time56;
3251 } else {
3252 L4_MABX_B.Saturation = DeltaTime;
3253 }
3254
3255 /* End of Saturate: '<S799>/Saturation' */
3256
3257 /* Product: '<S799>/Divide' incorporates:
3258 * Constant: '<S732>/dT'
3259 */
3260 L4_MABX_B.Divide = L4_MABX_P.dT_Value / L4_MABX_B.Saturation;
3261
3262 /* Product: '<S799>/Product2' */
3263 L4_MABX_B.Product2 = L4_MABX_B.Pedal_1_pwm_dc_raw_value * L4_MABX_B.Divide;
3264
3265 /* Sum: '<S799>/Subtract1' incorporates:
3266 * Constant: '<S799>/Constant1'
3267 */
3268 L4_MABX_B.Subtract1 = L4_MABX_P.Constant1_Value_g3 - L4_MABX_B.Divide;
3269
3270 /* UnitDelay: '<S799>/Unit_Delay2' */
3271 L4_MABX_B.Unit_Delay2 = L4_MABX_DW.Unit_Delay2_DSTATE;
3272
3273 /* Product: '<S799>/Product1' */
3274 L4_MABX_B.Product1 = L4_MABX_B.Subtract1 * L4_MABX_B.Unit_Delay2;
3275
3276 /* Sum: '<S799>/Add1' */
3277 L4_MABX_B.Add1 = L4_MABX_B.Product2 + L4_MABX_B.Product1;
3278
3279 /* Outputs for Atomic SubSystem: '<S799>/If_Then_Else' */
3280 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_i,
3281 L4_MABX_B.Pedal_1_pwm_dc_raw_value, L4_MABX_B.Add1,
3282 &L4_MABX_B.If_Then_Else_e);
3283
3284 /* End of Outputs for SubSystem: '<S799>/If_Then_Else' */
3285
3286 /* Lookup_n-D: '<S732>/PEDAL_PWM_ANGLE_SENS_1_MPV' */
3287 L4_MABX_B.Pedal_1_pwm_undefault = look1_binlcapw
3288 (L4_MABX_B.If_Then_Else_e.Switch, L4_MABX_P.PEDAL_PWM_ANGLE_SENS_1_MPV_bp01,
3289 L4_MABX_P.PEDAL_PWM_ANGLE_SENS_1_MPV_tabl, 7U);
3290
3291 /* UnitDelay: '<S732>/Unit_Delay1' */
3292 L4_MABX_B.Unit_Delay1_h = L4_MABX_DW.Unit_Delay1_DSTATE_n;
3293
3294 /* UnitDelay: '<S800>/Unit_Delay1' */
3295 L4_MABX_B.Unit_Delay1_hc = L4_MABX_DW.Unit_Delay1_DSTATE_m;
3296
3297 /* Logic: '<S800>/Logical Operator' */
3298 L4_MABX_B.LogicalOperator_h = (L4_MABX_B.Unit_Delay1_h ||
3299 L4_MABX_B.Unit_Delay1_hc);
3300
3301 /* MinMax: '<S800>/MinMax1' incorporates:
3302 * Constant: '<S732>/PEDAL_PWM_SENSOR_DATA_APV.T2_CONST'
3303 * Constant: '<S732>/dT1'
3304 */
3305 DeltaTime = L4_MABX_P.dT1_Value;
3306 PositionFinalLimited = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVT2_CON;
3307 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
3308 PositionFinalLimited = DeltaTime;
3309 }
3310
3311 L4_MABX_B.MinMax1_g = PositionFinalLimited;
3312
3313 /* End of MinMax: '<S800>/MinMax1' */
3314
3315 /* Saturate: '<S800>/Saturation' */
3316 DeltaTime = L4_MABX_B.MinMax1_g;
3317 Time56 = L4_MABX_P.Saturation_LowerSat_i;
3318 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_p;
3319 if (DeltaTime > PositionFinalLimited) {
3320 L4_MABX_B.Saturation_p = PositionFinalLimited;
3321 } else if (DeltaTime < Time56) {
3322 L4_MABX_B.Saturation_p = Time56;
3323 } else {
3324 L4_MABX_B.Saturation_p = DeltaTime;
3325 }
3326
3327 /* End of Saturate: '<S800>/Saturation' */
3328
3329 /* Product: '<S800>/Divide' incorporates:
3330 * Constant: '<S732>/dT1'
3331 */
3332 L4_MABX_B.Divide_a = L4_MABX_P.dT1_Value / L4_MABX_B.Saturation_p;
3333
3334 /* Product: '<S800>/Product2' */
3335 L4_MABX_B.Product2_e = L4_MABX_B.Pedal_2_pwm_freq_raw_value *
3336 L4_MABX_B.Divide_a;
3337
3338 /* Sum: '<S800>/Subtract1' incorporates:
3339 * Constant: '<S800>/Constant1'
3340 */
3341 L4_MABX_B.Subtract1_c = L4_MABX_P.Constant1_Value_l1 - L4_MABX_B.Divide_a;
3342
3343 /* UnitDelay: '<S800>/Unit_Delay2' */
3344 L4_MABX_B.Unit_Delay2_m = L4_MABX_DW.Unit_Delay2_DSTATE_f;
3345
3346 /* Product: '<S800>/Product1' */
3347 L4_MABX_B.Product1_a = L4_MABX_B.Subtract1_c * L4_MABX_B.Unit_Delay2_m;
3348
3349 /* Sum: '<S800>/Add1' */
3350 L4_MABX_B.Add1_c = L4_MABX_B.Product2_e + L4_MABX_B.Product1_a;
3351
3352 /* Outputs for Atomic SubSystem: '<S800>/If_Then_Else' */
3353 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_h,
3354 L4_MABX_B.Pedal_2_pwm_freq_raw_value, L4_MABX_B.Add1_c,
3355 &L4_MABX_B.If_Then_Else_gx);
3356
3357 /* End of Outputs for SubSystem: '<S800>/If_Then_Else' */
3358
3359 /* Lookup_n-D: '<S732>/PEDAL_PWM_ANGLE_SENS_2_MPV' */
3360 L4_MABX_B.Pedal_2_pwm_undefault = look1_binlcapw
3361 (L4_MABX_B.If_Then_Else_gx.Switch, L4_MABX_P.PEDAL_PWM_ANGLE_SENS_2_MPV_bp01,
3362 L4_MABX_P.PEDAL_PWM_ANGLE_SENS_2_MPV_tabl, 7U);
3363
3364 /* Sum: '<S734>/Subtract' */
3365 L4_MABX_B.Subtract = L4_MABX_B.Pedal_1_pwm_undefault -
3366 L4_MABX_B.Pedal_2_pwm_undefault;
3367
3368 /* Abs: '<S734>/Abs' */
3369 L4_MABX_B.Abs = fabs(L4_MABX_B.Subtract);
3370
3371 /* RelationalOperator: '<S736>/Compare' incorporates:
3372 * Constant: '<S736>/Constant'
3373 */
3374 L4_MABX_B.Compare_o = (L4_MABX_B.Pedal_1_pwm_health_state ==
3375 L4_MABX_P.CompareToConstant3_const_c);
3376
3377 /* RelationalOperator: '<S792>/Compare' incorporates:
3378 * Constant: '<S792>/Constant'
3379 */
3380 L4_MABX_B.Compare_b = (L4_MABX_B.Pedal_2_pwm_health_state ==
3381 L4_MABX_P.CompareToConstant5_const);
3382
3383 /* Logic: '<S730>/Logical Operator7' */
3384 L4_MABX_B.LogicalOperator7 = !L4_MABX_B.Compare_b;
3385
3386 /* RelationalOperator: '<S791>/Compare' incorporates:
3387 * Constant: '<S791>/Constant'
3388 */
3389 L4_MABX_B.Compare_j = (L4_MABX_B.Pedal_2_pwm_health_state ==
3390 L4_MABX_P.CompareToConstant4_const);
3391
3392 /* Logic: '<S730>/Logical Operator8' */
3393 L4_MABX_B.LogicalOperator8 = !L4_MABX_B.Compare_j;
3394
3395 /* UnitDelay: '<S798>/FixPt Unit Delay2' */
3396 L4_MABX_B.FixPtUnitDelay2_c = L4_MABX_DW.FixPtUnitDelay2_DSTATE_h;
3397
3398 /* UnitDelay: '<S798>/FixPt Unit Delay1' */
3399 L4_MABX_B.Xold_k = L4_MABX_DW.FixPtUnitDelay1_DSTATE_d;
3400
3401 /* Switch: '<S798>/Init' incorporates:
3402 * Constant: '<S726>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE'
3403 */
3404 if (L4_MABX_B.FixPtUnitDelay2_c != 0) {
3405 L4_MABX_B.Init_d = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL;
3406 } else {
3407 L4_MABX_B.Init_d = L4_MABX_B.Xold_k;
3408 }
3409
3410 /* End of Switch: '<S798>/Init' */
3411
3412 /* Outputs for Atomic SubSystem: '<S730>/If_Then_Else3' */
3413 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator8,
3414 L4_MABX_B.Pedal_2_pwm_undefault, L4_MABX_B.Init_d,
3415 &L4_MABX_B.If_Then_Else3_f);
3416
3417 /* End of Outputs for SubSystem: '<S730>/If_Then_Else3' */
3418
3419 /* Outputs for Atomic SubSystem: '<S730>/If_Then_Else2' */
3420
3421 /* Constant: '<S726>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE' */
3422 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator7,
3423 L4_MABX_B.If_Then_Else3_f.Switch,
3424 L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL,
3425 &L4_MABX_B.If_Then_Else2_k);
3426
3427 /* End of Outputs for SubSystem: '<S730>/If_Then_Else2' */
3428
3429 /* RelationalOperator: '<S790>/Compare' incorporates:
3430 * Constant: '<S790>/Constant'
3431 */
3432 L4_MABX_B.Compare_bx = (L4_MABX_B.Pedal_1_pwm_health_state ==
3433 L4_MABX_P.CompareToConstant3_const_l);
3434
3435 /* Logic: '<S730>/Logical Operator5' */
3436 L4_MABX_B.LogicalOperator5 = !L4_MABX_B.Compare_bx;
3437
3438 /* RelationalOperator: '<S789>/Compare' incorporates:
3439 * Constant: '<S789>/Constant'
3440 */
3441 L4_MABX_B.Compare_e = (L4_MABX_B.Pedal_1_pwm_health_state ==
3442 L4_MABX_P.CompareToConstant1_const_jf);
3443
3444 /* Logic: '<S730>/Logical Operator6' */
3445 L4_MABX_B.LogicalOperator6 = !L4_MABX_B.Compare_e;
3446
3447 /* UnitDelay: '<S797>/FixPt Unit Delay2' */
3448 L4_MABX_B.FixPtUnitDelay2_cl = L4_MABX_DW.FixPtUnitDelay2_DSTATE_i;
3449
3450 /* UnitDelay: '<S797>/FixPt Unit Delay1' */
3451 L4_MABX_B.Xold_n = L4_MABX_DW.FixPtUnitDelay1_DSTATE_a;
3452
3453 /* Switch: '<S797>/Init' incorporates:
3454 * Constant: '<S726>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE'
3455 */
3456 if (L4_MABX_B.FixPtUnitDelay2_cl != 0) {
3457 L4_MABX_B.Init_a = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL;
3458 } else {
3459 L4_MABX_B.Init_a = L4_MABX_B.Xold_n;
3460 }
3461
3462 /* End of Switch: '<S797>/Init' */
3463
3464 /* Outputs for Atomic SubSystem: '<S730>/If_Then_Else1' */
3465 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator6,
3466 L4_MABX_B.Pedal_1_pwm_undefault, L4_MABX_B.Init_a,
3467 &L4_MABX_B.If_Then_Else1_d);
3468
3469 /* End of Outputs for SubSystem: '<S730>/If_Then_Else1' */
3470
3471 /* Outputs for Atomic SubSystem: '<S730>/If_Then_Else' */
3472
3473 /* Constant: '<S726>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE' */
3474 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator5,
3475 L4_MABX_B.If_Then_Else1_d.Switch,
3476 L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL,
3477 &L4_MABX_B.If_Then_Else_a);
3478
3479 /* End of Outputs for SubSystem: '<S730>/If_Then_Else' */
3480
3481 /* Outputs for Atomic SubSystem: '<S728>/If_Then_Else1' */
3482 L4_MABX_If_Then_Else(L4_MABX_B.Compare_o, L4_MABX_B.If_Then_Else2_k.Switch,
3483 L4_MABX_B.If_Then_Else_a.Switch, &L4_MABX_B.If_Then_Else1);
3484
3485 /* End of Outputs for SubSystem: '<S728>/If_Then_Else1' */
3486
3487 /* RelationalOperator: '<S735>/Compare' incorporates:
3488 * Constant: '<S735>/Constant'
3489 */
3490 L4_MABX_B.Compare_m = (L4_MABX_B.Pedal_2_pwm_health_state ==
3491 L4_MABX_P.CompareToConstant1_const_e);
3492
3493 /* Outputs for Atomic SubSystem: '<S728>/If_Then_Else2' */
3494 L4_MABX_If_Then_Else(L4_MABX_B.Compare_m, L4_MABX_B.If_Then_Else_a.Switch,
3495 L4_MABX_B.If_Then_Else2_k.Switch,
3496 &L4_MABX_B.If_Then_Else2);
3497
3498 /* End of Outputs for SubSystem: '<S728>/If_Then_Else2' */
3499
3500 /* MinMax: '<S728>/MinMax' */
3501 DeltaTime = L4_MABX_B.If_Then_Else1.Switch;
3502 PositionFinalLimited = L4_MABX_B.If_Then_Else2.Switch;
3503 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
3504 PositionFinalLimited = DeltaTime;
3505 }
3506
3507 L4_MABX_B.MinMax = PositionFinalLimited;
3508
3509 /* End of MinMax: '<S728>/MinMax' */
3510
3511 /* Outputs for Atomic SubSystem: '<S728>/If_Then_Else' */
3512
3513 /* Constant: '<S726>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE' */
3514 L4_MABX_If_Then_Else(L4_MABX_B.F_Pedal_pwm_sens_total_failure,
3515 L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL,
3516 L4_MABX_B.MinMax, &L4_MABX_B.If_Then_Else_l);
3517
3518 /* End of Outputs for SubSystem: '<S728>/If_Then_Else' */
3519
3520 /* Lookup_n-D: '<S734>/PEDAL_PWM_ANGLE_DEV_MPV' */
3521 L4_MABX_B.PEDAL_PWM_ANGLE_DEV_MPV = look1_binlcapw
3522 (L4_MABX_B.If_Then_Else_l.Switch, L4_MABX_P.PEDAL_PWM_ANGLE_DEV_MPV_bp01Dat,
3523 L4_MABX_P.PEDAL_PWM_ANGLE_DEV_MPV_tableDa, 7U);
3524
3525 /* RelationalOperator: '<S734>/Relational Operator' */
3526 L4_MABX_B.F_Pedal_pwm_sync_fault = (L4_MABX_B.Abs >
3527 L4_MABX_B.PEDAL_PWM_ANGLE_DEV_MPV);
3528
3529 /* DataTypeConversion: '<S729>/Data Type Conversion2' */
3530 L4_MABX_B.DataTypeConversion2 = L4_MABX_B.F_Pedal_pwm_sync_fault;
3531
3532 /* RelationalOperator: '<S781>/min_relop' incorporates:
3533 * Constant: '<S729>/PWMSynchRngMin'
3534 */
3535 L4_MABX_B.min_relop_h = (L4_MABX_P.PWMSynchRngMin_Value <
3536 L4_MABX_B.DataTypeConversion2);
3537
3538 /* RelationalOperator: '<S781>/max_relop' incorporates:
3539 * Constant: '<S729>/PWMSynchRngMax'
3540 */
3541 L4_MABX_B.max_relop_e = (L4_MABX_B.DataTypeConversion2 <
3542 L4_MABX_P.PWMSynchRngMax_Value);
3543
3544 /* Logic: '<S781>/conjunction' */
3545 L4_MABX_B.conjunction_b = (L4_MABX_B.min_relop_h && L4_MABX_B.max_relop_e);
3546
3547 /* UnitDelay: '<S786>/FixPt Unit Delay2' */
3548 L4_MABX_B.FixPtUnitDelay2_h = L4_MABX_DW.FixPtUnitDelay2_DSTATE_l;
3549
3550 /* UnitDelay: '<S786>/FixPt Unit Delay1' */
3551 L4_MABX_B.Xold_p = L4_MABX_DW.FixPtUnitDelay1_DSTATE_e;
3552
3553 /* Switch: '<S786>/Init' incorporates:
3554 * Constant: '<S729>/PWMSynchFaultLimMin'
3555 */
3556 if (L4_MABX_B.FixPtUnitDelay2_h != 0) {
3557 L4_MABX_B.Init_f = L4_MABX_P.PWMSynchFaultLimMin_Value;
3558 } else {
3559 L4_MABX_B.Init_f = L4_MABX_B.Xold_p;
3560 }
3561
3562 /* End of Switch: '<S786>/Init' */
3563
3564 /* Sum: '<S782>/FixPt Sum1' incorporates:
3565 * Constant: '<S782>/FixPt Constant'
3566 */
3567 L4_MABX_B.FixPtSum1_fg = L4_MABX_B.Init_f - L4_MABX_P.FixPtConstant_Value_f;
3568
3569 /* Sum: '<S785>/FixPt Sum1' incorporates:
3570 * Constant: '<S785>/FixPt Constant'
3571 */
3572 L4_MABX_B.FixPtSum1_js = L4_MABX_B.Init_f + L4_MABX_P.FixPtConstant_Value_ky;
3573
3574 /* Outputs for Atomic SubSystem: '<S748>/If_Then_Else3' */
3575 L4_MABX_If_Then_Else(L4_MABX_B.conjunction_b, L4_MABX_B.FixPtSum1_fg,
3576 L4_MABX_B.FixPtSum1_js, &L4_MABX_B.If_Then_Else3_o);
3577
3578 /* End of Outputs for SubSystem: '<S748>/If_Then_Else3' */
3579
3580 /* RelationalOperator: '<S783>/Relational Operator1' incorporates:
3581 * Constant: '<S729>/PWMSynchFaultLimMax'
3582 */
3583 L4_MABX_B.RelationalOperator1_l = (L4_MABX_B.If_Then_Else3_o.Switch >=
3584 L4_MABX_P.PWMSynchFaultLimMax_Value);
3585
3586 /* RelationalOperator: '<S783>/Relational Operator' incorporates:
3587 * Constant: '<S729>/PWMSynchFaultLimMin'
3588 */
3589 L4_MABX_B.RelationalOperator_k = (L4_MABX_B.If_Then_Else3_o.Switch <=
3590 L4_MABX_P.PWMSynchFaultLimMin_Value);
3591
3592 /* Outputs for Atomic SubSystem: '<S783>/If_Then_Else1' */
3593
3594 /* Constant: '<S729>/PWMSynchFaultLimMin' */
3595 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_k,
3596 L4_MABX_P.PWMSynchFaultLimMin_Value,
3597 L4_MABX_B.If_Then_Else3_o.Switch,
3598 &L4_MABX_B.If_Then_Else1_c);
3599
3600 /* End of Outputs for SubSystem: '<S783>/If_Then_Else1' */
3601
3602 /* Outputs for Atomic SubSystem: '<S783>/If_Then_Else' */
3603
3604 /* Constant: '<S729>/PWMSynchFaultLimMax' */
3605 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_l,
3606 L4_MABX_P.PWMSynchFaultLimMax_Value,
3607 L4_MABX_B.If_Then_Else1_c.Switch,
3608 &L4_MABX_B.If_Then_Else_h);
3609
3610 /* End of Outputs for SubSystem: '<S783>/If_Then_Else' */
3611
3612 /* RelationalOperator: '<S748>/Relational Operator8' incorporates:
3613 * Constant: '<S729>/PWMSynchFaultLimMax'
3614 */
3615 L4_MABX_B.F_Fault_Hard_c = (L4_MABX_P.PWMSynchFaultLimMax_Value <=
3616 L4_MABX_B.If_Then_Else_h.Switch);
3617
3618 /* Logic: '<S726>/Logical Operator6' */
3619 L4_MABX_B.LogicalOperator6_b = (L4_MABX_B.F_Pedal_pwm_sens_total_failure ||
3620 L4_MABX_B.F_Fault_Hard_c);
3621
3622 /* Outputs for Enabled SubSystem: '<S726>/Slew_at_event' incorporates:
3623 * EnablePort: '<S733>/Enable'
3624 */
3625 /* Constant: '<S726>/F_PEDAL_TORQUE_SLEW_AT_FAULT' */
3626 if (L4_MABX_P.F_PEDAL_TORQUE_SLEW_AT_FAULT_Va) {
3627 if (!L4_MABX_DW.Slew_at_event_MODE) {
3628 /* InitializeConditions for UnitDelay: '<S804>/Unit_Delay' */
3629 L4_MABX_DW.Unit_Delay_DSTATE_il = L4_MABX_P.Unit_Delay_InitialCondition_kh;
3630
3631 /* InitializeConditions for UnitDelay: '<S805>/Unit_Delay' */
3632 L4_MABX_DW.Unit_Delay_DSTATE_n = L4_MABX_P.Unit_Delay_InitialCondition_a2;
3633
3634 /* InitializeConditions for UnitDelay: '<S808>/FixPt Unit Delay2' */
3635 L4_MABX_DW.FixPtUnitDelay2_DSTATE_ne =
3636 L4_MABX_P.FixPtUnitDelay2_InitialCondit_h;
3637
3638 /* InitializeConditions for UnitDelay: '<S808>/FixPt Unit Delay1' */
3639 L4_MABX_DW.FixPtUnitDelay1_DSTATE_b =
3640 L4_MABX_P.FixPtUnitDelay1_InitialCondi_mh;
3641
3642 /* InitializeConditions for UnitDelay: '<S803>/Unit_Delay' */
3643 L4_MABX_DW.Unit_Delay_DSTATE_cf =
3644 L4_MABX_P.Unit_Delay_InitialCondition_bqr;
3645 L4_MABX_DW.Slew_at_event_MODE = true;
3646 }
3647
3648 /* UnitDelay: '<S804>/Unit_Delay' */
3649 L4_MABX_B.Unit_Delay_ez = L4_MABX_DW.Unit_Delay_DSTATE_il;
3650
3651 /* Logic: '<S804>/Logical Operator1' */
3652 L4_MABX_B.LogicalOperator1_c = !L4_MABX_B.Unit_Delay_ez;
3653
3654 /* Logic: '<S804>/Logical Operator' */
3655 L4_MABX_B.LogicalOperator_pd = (L4_MABX_B.LogicalOperator6_b &&
3656 L4_MABX_B.LogicalOperator1_c);
3657
3658 /* UnitDelay: '<S805>/Unit_Delay' */
3659 L4_MABX_B.Unit_Delay_o = L4_MABX_DW.Unit_Delay_DSTATE_n;
3660
3661 /* Logic: '<S805>/Logical Operator1' */
3662 L4_MABX_B.LogicalOperator1_hx = (L4_MABX_B.LogicalOperator_pd ||
3663 L4_MABX_B.Unit_Delay_o);
3664
3665 /* UnitDelay: '<S808>/FixPt Unit Delay2' */
3666 L4_MABX_B.FixPtUnitDelay2_b = L4_MABX_DW.FixPtUnitDelay2_DSTATE_ne;
3667
3668 /* UnitDelay: '<S808>/FixPt Unit Delay1' */
3669 L4_MABX_B.Xold_le = L4_MABX_DW.FixPtUnitDelay1_DSTATE_b;
3670
3671 /* Switch: '<S808>/Init' incorporates:
3672 * Constant: '<S726>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE'
3673 */
3674 if (L4_MABX_B.FixPtUnitDelay2_b != 0) {
3675 L4_MABX_B.Init_fr = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL;
3676 } else {
3677 L4_MABX_B.Init_fr = L4_MABX_B.Xold_le;
3678 }
3679
3680 /* End of Switch: '<S808>/Init' */
3681
3682 /* Abs: '<S805>/Abs' incorporates:
3683 * Constant: '<S726>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_SLEW_UP'
3684 */
3685 L4_MABX_B.Abs_j = fabs(L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFA_o);
3686
3687 /* Product: '<S805>/Product1' incorporates:
3688 * Constant: '<S726>/PEDAL_PWM_SENSOR_DATA_APV.DT'
3689 */
3690 L4_MABX_B.Product1_k = L4_MABX_B.Abs_j *
3691 L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDT_Val;
3692
3693 /* Sum: '<S805>/Add1' */
3694 L4_MABX_B.Add1_m = L4_MABX_B.Init_fr + L4_MABX_B.Product1_k;
3695
3696 /* MinMax: '<S805>/MinMax2' incorporates:
3697 * Constant: '<S726>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE'
3698 */
3699 DeltaTime = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL;
3700 PositionFinalLimited = L4_MABX_B.Add1_m;
3701 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
3702 PositionFinalLimited = DeltaTime;
3703 }
3704
3705 L4_MABX_B.MinMax2 = PositionFinalLimited;
3706
3707 /* End of MinMax: '<S805>/MinMax2' */
3708
3709 /* Abs: '<S805>/Abs1' incorporates:
3710 * Constant: '<S726>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_SLEW_DOWN'
3711 */
3712 L4_MABX_B.Abs1 = fabs(L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFA_m);
3713
3714 /* Product: '<S805>/Product2' incorporates:
3715 * Constant: '<S726>/PEDAL_PWM_SENSOR_DATA_APV.DT'
3716 */
3717 L4_MABX_B.Product2_f = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDT_Val *
3718 L4_MABX_B.Abs1;
3719
3720 /* Sum: '<S805>/Subtract1' */
3721 L4_MABX_B.Subtract1_n = L4_MABX_B.Init_fr - L4_MABX_B.Product2_f;
3722
3723 /* MinMax: '<S805>/MinMax1' */
3724 DeltaTime = L4_MABX_B.MinMax2;
3725 PositionFinalLimited = L4_MABX_B.Subtract1_n;
3726 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
3727 PositionFinalLimited = DeltaTime;
3728 }
3729
3730 L4_MABX_B.MinMax1_j = PositionFinalLimited;
3731
3732 /* End of MinMax: '<S805>/MinMax1' */
3733
3734 /* Outputs for Atomic SubSystem: '<S805>/If_Then_Else' */
3735 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_hx,
3736 L4_MABX_B.If_Then_Else_l.Switch, L4_MABX_B.MinMax1_j,
3737 &L4_MABX_B.If_Then_Else_jx);
3738
3739 /* End of Outputs for SubSystem: '<S805>/If_Then_Else' */
3740
3741 /* Sum: '<S733>/Subtract' incorporates:
3742 * Constant: '<S726>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE'
3743 */
3744 L4_MABX_B.Subtract_c = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL -
3745 L4_MABX_B.If_Then_Else_jx.Switch;
3746
3747 /* Abs: '<S733>/Abs' */
3748 L4_MABX_B.Abs_h = fabs(L4_MABX_B.Subtract_c);
3749
3750 /* RelationalOperator: '<S733>/Relational Operator1' incorporates:
3751 * Constant: '<S733>/Constant1'
3752 */
3753 L4_MABX_B.RelationalOperator1_k = (L4_MABX_B.Abs_h <=
3754 L4_MABX_P.Constant1_Value_ce);
3755
3756 /* Logic: '<S803>/Logical Operator3' */
3757 L4_MABX_B.LogicalOperator3_i = !L4_MABX_B.RelationalOperator1_k;
3758
3759 /* UnitDelay: '<S803>/Unit_Delay' */
3760 L4_MABX_B.Unit_Delay_bf = L4_MABX_DW.Unit_Delay_DSTATE_cf;
3761
3762 /* Logic: '<S803>/Logical Operator1' */
3763 L4_MABX_B.LogicalOperator1_jg = (L4_MABX_B.LogicalOperator6_b ||
3764 L4_MABX_B.Unit_Delay_bf);
3765
3766 /* Logic: '<S803>/Logical Operator' */
3767 L4_MABX_B.LogicalOperator_ny = (L4_MABX_B.LogicalOperator3_i &&
3768 L4_MABX_B.LogicalOperator1_jg);
3769
3770 /* Logic: '<S803>/Logical Operator2' */
3771 L4_MABX_B.LogicalOperator2_h = !L4_MABX_B.LogicalOperator_ny;
3772
3773 /* RelationalOperator: '<S806>/min_relop' incorporates:
3774 * Constant: '<S726>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_SLEW_UP'
3775 * Constant: '<S806>/min_val'
3776 */
3777 L4_MABX_B.min_relop_k = (L4_MABX_P.CheckStaticLowerBound_min_h4 <=
3778 L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFA_o);
3779
3780 /* Assertion: '<S806>/Assertion' */
3781 utAssert(L4_MABX_B.min_relop_k);
3782 } else {
3783 if (L4_MABX_DW.Slew_at_event_MODE) {
3784 /* Disable for Outport: '<S733>/F_Out_slewing' */
3785 L4_MABX_B.LogicalOperator_ny = L4_MABX_P.F_Out_slewing_Y0_c;
3786
3787 /* Disable for Outport: '<S733>/Out' */
3788 L4_MABX_B.If_Then_Else_jx.Switch = L4_MABX_P.Out_Y0_no;
3789 L4_MABX_DW.Slew_at_event_MODE = false;
3790 }
3791 }
3792
3793 /* End of Constant: '<S726>/F_PEDAL_TORQUE_SLEW_AT_FAULT' */
3794 /* End of Outputs for SubSystem: '<S726>/Slew_at_event' */
3795
3796 /* Outputs for Atomic SubSystem: '<S726>/If_Then_Else' */
3797 L4_MABX_If_Then_Else_n(L4_MABX_B.LogicalOperator_ny,
3798 L4_MABX_B.If_Then_Else_jx.Switch, L4_MABX_B.If_Then_Else_l.Switch);
3799
3800 /* End of Outputs for SubSystem: '<S726>/If_Then_Else' */
3801
3802 /* S-Function (rti_commonblock): '<S718>/S-Function1' */
3803 /* This comment workarounds a code generation problem */
3804 {
3805 /* dSPACE I/O Board DS1401STDADCT4 #1 Unit:ADC Group:ADC */
3806 adc_tp4_single_new_read(ADC_TP4_1_MODULE_ADDR,
3807 ADC_TP4_CH3,
3808 (dsfloat *)&L4_MABX_B.SFunction1);
3809 }
3810
3811 /* Gain: '<S402>/KL15_Monitor' */
3812 L4_MABX_B.IgnitionKeySwitch_voltage = L4_MABX_P.KL15_Monitor_Gain *
3813 L4_MABX_B.SFunction1;
3814
3815 /* Outputs for Enabled SubSystem: '<S493>/CCVS1_31' incorporates:
3816 * EnablePort: '<S494>/Enable'
3817 */
3818 /* Constant: '<S416>/Constant' */
3819 if (L4_MABX_P.Constant_Value_hs) {
3820 /* S-Function (rti_commonblock): '<S494>/S-Function1' */
3821 /* This comment workarounds a code generation problem */
3822
3823 /* dSPACE RTICAN RX Message Block: "CCVS1_31" Id:419361073 */
3824 {
3825 UInt32 *CAN_Msg;
3826 static dsfloat time_old = 0.0;
3827
3828 /* Read status and timestamp info (previous message) */
3829 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF131].timestamp !=
3830 time_old) {
3831 /* ... save timestamp info for the calculation of the RX status
3832 during the consecutive sample hit*/
3833 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF131].
3834 timestamp;
3835
3836 /* ... set the processed flag to one */
3837 L4_MABX_B.SFunction1_o21_f = 1.0;
3838 L4_MABX_B.SFunction1_o22_fj = (real_T)
3839 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF131].timestamp;
3840 L4_MABX_B.SFunction1_o23_g = (real_T)
3841 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF131].deltatime;
3842 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF131].data;
3843
3844 /* Decode CAN message */
3845 {
3846 {
3847 rtican_Signal_t CAN_Sgn;
3848
3849 /* ...... "TwoSpeedAxleSwitch" (0|2, standard signal, unsigned int, little endian) */
3850 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
3851 CAN_Sgn.UnsignedSgn &= 0x00000003;
3852 L4_MABX_B.SFunction1_o1_ni = ((real_T) CAN_Sgn.UnsignedSgn);
3853
3854 /* ...... "ParkingBrakeSwitch" (2|2, standard signal, unsigned int, little endian) */
3855 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
3856 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
3857 CAN_Sgn.UnsignedSgn &= 0x00000003;
3858 L4_MABX_B.SFunction1_o2_hy = ((real_T) CAN_Sgn.UnsignedSgn);
3859
3860 /* ...... "CruiseCtrlPauseSwitch" (4|2, standard signal, unsigned int, little endian) */
3861 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
3862 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
3863 CAN_Sgn.UnsignedSgn &= 0x00000003;
3864 L4_MABX_B.SFunction1_o3_ft = ((real_T) CAN_Sgn.UnsignedSgn);
3865
3866 /* ...... "ParkBrakeReleaseInhibitRq" (6|2, standard signal, unsigned int, little endian) */
3867 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
3868 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
3869 CAN_Sgn.UnsignedSgn &= 0x00000003;
3870 L4_MABX_B.SFunction1_o4_iv = ((real_T) CAN_Sgn.UnsignedSgn);
3871
3872 /* ...... "WheelBasedVehicleSpeed" (8|16, standard signal, unsigned int, little endian) */
3873 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
3874 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
3875 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
3876 L4_MABX_B.SFunction1_o5_el = 0.00390625 * ( ((real_T)
3877 CAN_Sgn.UnsignedSgn) );
3878
3879 /* ...... "CruiseCtrlActive" (24|2, standard signal, unsigned int, little endian) */
3880 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
3881 CAN_Sgn.UnsignedSgn &= 0x00000003;
3882 L4_MABX_B.SFunction1_o6_j = ((real_T) CAN_Sgn.UnsignedSgn);
3883
3884 /* ...... "CruiseCtrlEnableSwitch" (26|2, standard signal, unsigned int, little endian) */
3885 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
3886 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
3887 CAN_Sgn.UnsignedSgn &= 0x00000003;
3888 L4_MABX_B.SFunction1_o7_kk = ((real_T) CAN_Sgn.UnsignedSgn);
3889
3890 /* ...... "BrakeSwitch" (28|2, standard signal, unsigned int, little endian) */
3891 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
3892 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
3893 CAN_Sgn.UnsignedSgn &= 0x00000003;
3894 L4_MABX_B.SFunction1_o8_l = ((real_T) CAN_Sgn.UnsignedSgn);
3895
3896 /* ...... "ClutchSwitch" (30|2, standard signal, unsigned int, little endian) */
3897 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
3898 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
3899 CAN_Sgn.UnsignedSgn &= 0x00000003;
3900 L4_MABX_B.SFunction1_o9_mz = ((real_T) CAN_Sgn.UnsignedSgn);
3901
3902 /* ...... "CruiseCtrlSetSwitch" (32|2, standard signal, unsigned int, little endian) */
3903 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
3904 CAN_Sgn.UnsignedSgn &= 0x00000003;
3905 L4_MABX_B.SFunction1_o10_d = ((real_T) CAN_Sgn.UnsignedSgn);
3906
3907 /* ...... "CruiseCtrlCoastSwitch" (34|2, standard signal, unsigned int, little endian) */
3908 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
3909 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
3910 CAN_Sgn.UnsignedSgn &= 0x00000003;
3911 L4_MABX_B.SFunction1_o11_j = ((real_T) CAN_Sgn.UnsignedSgn);
3912
3913 /* ...... "CruiseCtrlResumeSwitch" (36|2, standard signal, unsigned int, little endian) */
3914 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
3915 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
3916 CAN_Sgn.UnsignedSgn &= 0x00000003;
3917 L4_MABX_B.SFunction1_o12_fc = ((real_T) CAN_Sgn.UnsignedSgn);
3918
3919 /* ...... "CruiseCtrlAccelerateSwitch" (38|2, standard signal, unsigned int, little endian) */
3920 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
3921 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
3922 CAN_Sgn.UnsignedSgn &= 0x00000003;
3923 L4_MABX_B.SFunction1_o13_i = ((real_T) CAN_Sgn.UnsignedSgn);
3924
3925 /* ...... "CruiseCtrlSetSpeed" (40|8, standard signal, unsigned int, little endian) */
3926 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
3927 CAN_Sgn.UnsignedSgn &= 0x000000FF;
3928 L4_MABX_B.SFunction1_o14_a = ((real_T) CAN_Sgn.UnsignedSgn);
3929
3930 /* ...... "PTOGovernorState" (48|5, standard signal, unsigned int, little endian) */
3931 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
3932 CAN_Sgn.UnsignedSgn &= 0x0000001F;
3933 L4_MABX_B.SFunction1_o15_k = ((real_T) CAN_Sgn.UnsignedSgn);
3934
3935 /* ...... "CruiseCtrlStates" (53|3, standard signal, unsigned int, little endian) */
3936 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
3937 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 5;
3938 CAN_Sgn.UnsignedSgn &= 0x00000007;
3939 L4_MABX_B.SFunction1_o16_k = ((real_T) CAN_Sgn.UnsignedSgn);
3940
3941 /* ...... "EngIdleIncrementSwitch" (56|2, standard signal, unsigned int, little endian) */
3942 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
3943 CAN_Sgn.UnsignedSgn &= 0x00000003;
3944 L4_MABX_B.SFunction1_o17_m = ((real_T) CAN_Sgn.UnsignedSgn);
3945
3946 /* ...... "EngIdleDecrementSwitch" (58|2, standard signal, unsigned int, little endian) */
3947 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
3948 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
3949 CAN_Sgn.UnsignedSgn &= 0x00000003;
3950 L4_MABX_B.SFunction1_o18_i = ((real_T) CAN_Sgn.UnsignedSgn);
3951
3952 /* ...... "EngTestModeSwitch" (60|2, standard signal, unsigned int, little endian) */
3953 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
3954 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
3955 CAN_Sgn.UnsignedSgn &= 0x00000003;
3956 L4_MABX_B.SFunction1_o19_p = ((real_T) CAN_Sgn.UnsignedSgn);
3957
3958 /* ...... "EngShutdownOverrideSwitch" (62|2, standard signal, unsigned int, little endian) */
3959 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
3960 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
3961 CAN_Sgn.UnsignedSgn &= 0x00000003;
3962 L4_MABX_B.SFunction1_o20_g = ((real_T) CAN_Sgn.UnsignedSgn);
3963 }
3964 }
3965 } else {
3966 /* set RX status to 0 because no new message has arrived */
3967 L4_MABX_B.SFunction1_o21_f = 0.0;
3968 }
3969 }
3970 }
3971
3972 /* End of Constant: '<S416>/Constant' */
3973 /* End of Outputs for SubSystem: '<S493>/CCVS1_31' */
3974
3975 /* Outputs for Enabled SubSystem: '<S504>/EBC2_0B1' incorporates:
3976 * EnablePort: '<S505>/Enable'
3977 */
3978 /* Constant: '<S421>/Enable_RX_EBC2_0B' */
3979 if (L4_MABX_P.Enable_RX_EBC2_0B_Value) {
3980 /* S-Function (rti_commonblock): '<S505>/S-Function1' */
3981 /* This comment workarounds a code generation problem */
3982
3983 /* dSPACE RTICAN RX Message Block: "EBC2_0B" Id:419348235 */
3984 {
3985 UInt32 *CAN_Msg;
3986 static dsfloat time_old = 0.0;
3987
3988 /* Read status and timestamp info (previous message) */
3989 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEBF0B].timestamp !=
3990 time_old) {
3991 /* ... save timestamp info for the calculation of the RX status
3992 during the consecutive sample hit*/
3993 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEBF0B].
3994 timestamp;
3995
3996 /* ... set the processed flag to one */
3997 L4_MABX_B.SFunction1_o8_e = 1.0;
3998 L4_MABX_B.SFunction1_o9_jb = (real_T)
3999 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEBF0B].timestamp;
4000 L4_MABX_B.SFunction1_o10_cx = (real_T)
4001 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEBF0B].deltatime;
4002 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEBF0B].data;
4003
4004 /* Decode CAN message */
4005 {
4006 {
4007 rtican_Signal_t CAN_Sgn;
4008
4009 /* ...... "FrontAxleSpeed" (0|16, standard signal, unsigned int, little endian) */
4010 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4011 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
4012 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4013 L4_MABX_B.SFunction1_o1_os = 0.00390625 * ( ((real_T)
4014 CAN_Sgn.UnsignedSgn) );
4015
4016 /* ...... "RelativeSpeedFrontAxleLeftWheel" (16|8, standard signal, unsigned int, little endian) */
4017 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4018 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4019 L4_MABX_B.SFunction1_o2_ln = -7.8125 + ( 0.0625 * ( ((real_T)
4020 CAN_Sgn.UnsignedSgn) ) );
4021
4022 /* ...... "RlativeSpeedFrontAxleRightWheel" (24|8, standard signal, unsigned int, little endian) */
4023 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4024 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4025 L4_MABX_B.SFunction1_o3_bz = -7.8125 + ( 0.0625 * ( ((real_T)
4026 CAN_Sgn.UnsignedSgn) ) );
4027
4028 /* ...... "RelativeSpeedRearAxle1LeftWheel" (32|8, standard signal, unsigned int, little endian) */
4029 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4030 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4031 L4_MABX_B.SFunction1_o4_ex = -7.8125 + ( 0.0625 * ( ((real_T)
4032 CAN_Sgn.UnsignedSgn) ) );
4033
4034 /* ...... "RlativeSpeedRearAxle1RightWheel" (40|8, standard signal, unsigned int, little endian) */
4035 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4036 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4037 L4_MABX_B.SFunction1_o5_fu = -7.8125 + ( 0.0625 * ( ((real_T)
4038 CAN_Sgn.UnsignedSgn) ) );
4039
4040 /* ...... "RelativeSpeedRearAxle2LeftWheel" (48|8, standard signal, unsigned int, little endian) */
4041 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4042 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4043 L4_MABX_B.SFunction1_o6_po = -7.8125 + ( 0.0625 * ( ((real_T)
4044 CAN_Sgn.UnsignedSgn) ) );
4045
4046 /* ...... "RlativeSpeedRearAxle2RightWheel" (56|8, standard signal, unsigned int, little endian) */
4047 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4048 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4049 L4_MABX_B.SFunction1_o7_lw = -7.8125 + ( 0.0625 * ( ((real_T)
4050 CAN_Sgn.UnsignedSgn) ) );
4051 }
4052 }
4053 } else {
4054 /* set RX status to 0 because no new message has arrived */
4055 L4_MABX_B.SFunction1_o8_e = 0.0;
4056 }
4057 }
4058 }
4059
4060 /* End of Constant: '<S421>/Enable_RX_EBC2_0B' */
4061 /* End of Outputs for SubSystem: '<S504>/EBC2_0B1' */
4062
4063 /* Outputs for Enabled SubSystem: '<S562>/HRW_0B' incorporates:
4064 * EnablePort: '<S563>/Enable'
4065 */
4066 /* Constant: '<S428>/Enable_HRW_RX_0B' */
4067 if (L4_MABX_P.Enable_HRW_RX_0B_Value) {
4068 /* S-Function (rti_commonblock): '<S563>/S-Function1' */
4069 /* This comment workarounds a code generation problem */
4070
4071 /* dSPACE RTICAN RX Message Block: "HRW_0B" Id:150892043 */
4072 {
4073 UInt32 *CAN_Msg;
4074 static dsfloat time_old = 0.0;
4075
4076 /* Read status and timestamp info (previous message) */
4077 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x8FE6E0B].timestamp !=
4078 time_old) {
4079 /* ... save timestamp info for the calculation of the RX status
4080 during the consecutive sample hit*/
4081 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x8FE6E0B].
4082 timestamp;
4083
4084 /* ... set the processed flag to one */
4085 L4_MABX_B.SFunction1_o5_bu = 1.0;
4086 L4_MABX_B.SFunction1_o6_k = (real_T)
4087 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x8FE6E0B].timestamp;
4088 L4_MABX_B.SFunction1_o7_i = (real_T)
4089 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x8FE6E0B].deltatime;
4090 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x8FE6E0B].data;
4091
4092 /* Decode CAN message */
4093 {
4094 {
4095 rtican_Signal_t CAN_Sgn;
4096
4097 /* ...... "FrontAxleLeftWheelSpeed" (0|16, standard signal, unsigned int, little endian) */
4098 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4099 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
4100 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4101 L4_MABX_B.SFunction1_o1_le = 0.00390625 * ( ((real_T)
4102 CAN_Sgn.UnsignedSgn) );
4103
4104 /* ...... "FrontAxleRightWheelSpeed" (16|16, standard signal, unsigned int, little endian) */
4105 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4106 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
4107 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4108 L4_MABX_B.SFunction1_o2_g3 = 0.00390625 * ( ((real_T)
4109 CAN_Sgn.UnsignedSgn) );
4110
4111 /* ...... "RearAxleLeftWheelSpeed" (32|16, standard signal, unsigned int, little endian) */
4112 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4113 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
4114 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4115 L4_MABX_B.SFunction1_o3_fy = 0.00390625 * ( ((real_T)
4116 CAN_Sgn.UnsignedSgn) );
4117
4118 /* ...... "RearAxleRightWheelSpeed" (48|16, standard signal, unsigned int, little endian) */
4119 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4120 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[7];
4121 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4122 L4_MABX_B.SFunction1_o4_nk = 0.00390625 * ( ((real_T)
4123 CAN_Sgn.UnsignedSgn) );
4124 }
4125 }
4126 } else {
4127 /* set RX status to 0 because no new message has arrived */
4128 L4_MABX_B.SFunction1_o5_bu = 0.0;
4129 }
4130 }
4131 }
4132
4133 /* End of Constant: '<S428>/Enable_HRW_RX_0B' */
4134 /* End of Outputs for SubSystem: '<S562>/HRW_0B' */
4135
4136 /* Outputs for Enabled SubSystem: '<S502>/EBC1_0B' incorporates:
4137 * EnablePort: '<S503>/Enable'
4138 */
4139 /* Constant: '<S420>/Constant1' */
4140 if (L4_MABX_P.Constant1_Value_il) {
4141 /* S-Function (rti_commonblock): '<S503>/S-Function1' */
4142 /* This comment workarounds a code generation problem */
4143
4144 /* dSPACE RTICAN RX Message Block: "EBC1_0B" Id:418382219 */
4145 {
4146 UInt32 *CAN_Msg;
4147 static dsfloat time_old = 0.0;
4148
4149 /* Read status and timestamp info (previous message) */
4150 if (can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18F0018B].timestamp !=
4151 time_old) {
4152 /* ... save timestamp info for the calculation of the RX status
4153 during the consecutive sample hit*/
4154 time_old = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18F0018B].
4155 timestamp;
4156
4157 /* ... set the processed flag to one */
4158 L4_MABX_B.SFunction1_o23_n = 1.0;
4159 L4_MABX_B.SFunction1_o24_e = (real_T)
4160 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18F0018B].timestamp;
4161 L4_MABX_B.SFunction1_o25_h = (real_T)
4162 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18F0018B].deltatime;
4163 CAN_Msg = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18F0018B].data;
4164
4165 /* Decode CAN message */
4166 {
4167 {
4168 rtican_Signal_t CAN_Sgn;
4169
4170 /* ...... "ASREngCtrlActive" (0|2, standard signal, unsigned int, little endian) */
4171 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4172 CAN_Sgn.UnsignedSgn &= 0x00000003;
4173 L4_MABX_B.SFunction1_o1_ih = ((real_T) CAN_Sgn.UnsignedSgn);
4174
4175 /* ...... "ASRBrakeCtrlActive" (2|2, standard signal, unsigned int, little endian) */
4176 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4177 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4178 CAN_Sgn.UnsignedSgn &= 0x00000003;
4179 L4_MABX_B.SFunction1_o2_i0 = ((real_T) CAN_Sgn.UnsignedSgn);
4180
4181 /* ...... "AntiLockBrakingActive" (4|2, standard signal, unsigned int, little endian) */
4182 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4183 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4184 CAN_Sgn.UnsignedSgn &= 0x00000003;
4185 L4_MABX_B.SFunction1_o3_ls = ((real_T) CAN_Sgn.UnsignedSgn);
4186
4187 /* ...... "EBSBrakeSwitch" (6|2, standard signal, unsigned int, little endian) */
4188 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4189 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4190 CAN_Sgn.UnsignedSgn &= 0x00000003;
4191 L4_MABX_B.SFunction1_o4_nr = ((real_T) CAN_Sgn.UnsignedSgn);
4192
4193 /* ...... "BrakePedalPos" (8|8, standard signal, unsigned int, little endian) */
4194 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
4195 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4196 L4_MABX_B.SFunction1_o5_k4 = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
4197
4198 /* ...... "ABSOffroadSwitch" (16|2, standard signal, unsigned int, little endian) */
4199 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4200 CAN_Sgn.UnsignedSgn &= 0x00000003;
4201 L4_MABX_B.SFunction1_o6_b = ((real_T) CAN_Sgn.UnsignedSgn);
4202
4203 /* ...... "ASROffroadSwitch" (18|2, standard signal, unsigned int, little endian) */
4204 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4205 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4206 CAN_Sgn.UnsignedSgn &= 0x00000003;
4207 L4_MABX_B.SFunction1_o7_g = ((real_T) CAN_Sgn.UnsignedSgn);
4208
4209 /* ...... "ASRHillHolderSwitch" (20|2, standard signal, unsigned int, little endian) */
4210 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4211 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4212 CAN_Sgn.UnsignedSgn &= 0x00000003;
4213 L4_MABX_B.SFunction1_o8_ih = ((real_T) CAN_Sgn.UnsignedSgn);
4214
4215 /* ...... "TractionCtrlOverrideSwitch" (22|2, standard signal, unsigned int, little endian) */
4216 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4217 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4218 CAN_Sgn.UnsignedSgn &= 0x00000003;
4219 L4_MABX_B.SFunction1_o9_i = ((real_T) CAN_Sgn.UnsignedSgn);
4220
4221 /* ...... "AccelInterlockSwitch" (24|2, standard signal, unsigned int, little endian) */
4222 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4223 CAN_Sgn.UnsignedSgn &= 0x00000003;
4224 L4_MABX_B.SFunction1_o10_o = ((real_T) CAN_Sgn.UnsignedSgn);
4225
4226 /* ...... "EngDerateSwitch" (26|2, standard signal, unsigned int, little endian) */
4227 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4228 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4229 CAN_Sgn.UnsignedSgn &= 0x00000003;
4230 L4_MABX_B.SFunction1_o11_gk = ((real_T) CAN_Sgn.UnsignedSgn);
4231
4232 /* ...... "EngAuxShutdownSwitch" (28|2, standard signal, unsigned int, little endian) */
4233 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4234 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4235 CAN_Sgn.UnsignedSgn &= 0x00000003;
4236 L4_MABX_B.SFunction1_o12_l = ((real_T) CAN_Sgn.UnsignedSgn);
4237
4238 /* ...... "RemoteAccelEnableSwitch" (30|2, standard signal, unsigned int, little endian) */
4239 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4240 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4241 CAN_Sgn.UnsignedSgn &= 0x00000003;
4242 L4_MABX_B.SFunction1_o13_g = ((real_T) CAN_Sgn.UnsignedSgn);
4243
4244 /* ...... "EngRetarderSelection" (32|8, standard signal, unsigned int, little endian) */
4245 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4246 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4247 L4_MABX_B.SFunction1_o14_h = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
4248
4249 /* ...... "ABSFullyOperational" (40|2, standard signal, unsigned int, little endian) */
4250 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4251 CAN_Sgn.UnsignedSgn &= 0x00000003;
4252 L4_MABX_B.SFunction1_o15_n = ((real_T) CAN_Sgn.UnsignedSgn);
4253
4254 /* ...... "EBSRedWarningSignal" (42|2, standard signal, unsigned int, little endian) */
4255 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4256 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4257 CAN_Sgn.UnsignedSgn &= 0x00000003;
4258 L4_MABX_B.SFunction1_o16_p = ((real_T) CAN_Sgn.UnsignedSgn);
4259
4260 /* ...... "ABS_EBSAmberWarningSignal" (44|2, standard signal, unsigned int, little endian) */
4261 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4262 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4263 CAN_Sgn.UnsignedSgn &= 0x00000003;
4264 L4_MABX_B.SFunction1_o17_a = ((real_T) CAN_Sgn.UnsignedSgn);
4265
4266 /* ...... "ATC_ASRInformationSignal" (46|2, standard signal, unsigned int, little endian) */
4267 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4268 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4269 CAN_Sgn.UnsignedSgn &= 0x00000003;
4270 L4_MABX_B.SFunction1_o18_p = ((real_T) CAN_Sgn.UnsignedSgn);
4271
4272 /* ...... "SrcAddrssOfCtrllngDvcFrBrkCntrl" (48|8, standard signal, unsigned int, little endian) */
4273 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4274 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4275 L4_MABX_B.SFunction1_o19_b = ((real_T) CAN_Sgn.UnsignedSgn);
4276
4277 /* ...... "HaltBrakeSwitch" (58|2, standard signal, unsigned int, little endian) */
4278 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4279 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4280 CAN_Sgn.UnsignedSgn &= 0x00000003;
4281 L4_MABX_B.SFunction1_o20_c = ((real_T) CAN_Sgn.UnsignedSgn);
4282
4283 /* ...... "TrailerABSStatus" (60|2, standard signal, unsigned int, little endian) */
4284 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4285 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4286 CAN_Sgn.UnsignedSgn &= 0x00000003;
4287 L4_MABX_B.SFunction1_o21_l = ((real_T) CAN_Sgn.UnsignedSgn);
4288
4289 /* ...... "TrctrMntdTrilerABSWarningSignal" (62|2, standard signal, unsigned int, little endian) */
4290 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4291 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4292 CAN_Sgn.UnsignedSgn &= 0x00000003;
4293 L4_MABX_B.SFunction1_o22_i = ((real_T) CAN_Sgn.UnsignedSgn);
4294 }
4295 }
4296 } else {
4297 /* set RX status to 0 because no new message has arrived */
4298 L4_MABX_B.SFunction1_o23_n = 0.0;
4299 }
4300 }
4301 }
4302
4303 /* End of Constant: '<S420>/Constant1' */
4304 /* End of Outputs for SubSystem: '<S502>/EBC1_0B' */
4305
4306 /* Outputs for Enabled SubSystem: '<S557>/ETC2_031' incorporates:
4307 * EnablePort: '<S558>/Enable'
4308 */
4309 /* Constant: '<S426>/Enable_RX_ETC2_03' */
4310 if (L4_MABX_P.Enable_RX_ETC2_03_Value) {
4311 /* S-Function (rti_commonblock): '<S558>/S-Function1' */
4312 /* This comment workarounds a code generation problem */
4313
4314 /* dSPACE RTICAN RX Message Block: "ETC2_03" Id:418383107 */
4315 {
4316 UInt32 *CAN_Msg;
4317 static dsfloat time_old = 0.0;
4318
4319 /* Read status and timestamp info (previous message) */
4320 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F00503].timestamp !=
4321 time_old) {
4322 /* ... save timestamp info for the calculation of the RX status
4323 during the consecutive sample hit*/
4324 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F00503].
4325 timestamp;
4326
4327 /* ... set the processed flag to one */
4328 L4_MABX_B.SFunction1_o4_os = 1.0;
4329 L4_MABX_B.SFunction1_o5_i3 = (real_T)
4330 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F00503].timestamp;
4331 L4_MABX_B.SFunction1_o6_dw = (real_T)
4332 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F00503].deltatime;
4333 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F00503].data;
4334
4335 /* Decode CAN message */
4336 {
4337 {
4338 rtican_Signal_t CAN_Sgn;
4339
4340 /* ...... "SPN524_TransSelectedGear" (0|8, standard signal, unsigned int, little endian) */
4341 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4342 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4343 L4_MABX_B.SFunction1_o1_jf = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
4344 );
4345
4346 /* ...... "SPN526_TransActualGearRatio" (8|16, standard signal, unsigned int, little endian) */
4347 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
4348 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
4349 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4350 L4_MABX_B.SFunction1_o2_jy = 0.001 * ( ((real_T) CAN_Sgn.UnsignedSgn)
4351 );
4352
4353 /* ...... "SPN523_TransCurrentGear" (24|8, standard signal, unsigned int, little endian) */
4354 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4355 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4356 L4_MABX_B.SFunction1_o3_fa = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
4357 );
4358 }
4359 }
4360 } else {
4361 /* set RX status to 0 because no new message has arrived */
4362 L4_MABX_B.SFunction1_o4_os = 0.0;
4363 }
4364 }
4365 }
4366
4367 /* End of Constant: '<S426>/Enable_RX_ETC2_03' */
4368 /* End of Outputs for SubSystem: '<S557>/ETC2_031' */
4369
4370 /* DataTypeConversion: '<S557>/Data Type Conversion1' */
4371 L4_MABX_B.SPN524_TransSelectedGear = L4_MABX_B.SFunction1_o1_jf;
4372
4373 /* DataTypeConversion: '<S557>/Data Type Conversion2' */
4374 L4_MABX_B.SPN523_TransCurrentGear = L4_MABX_B.SFunction1_o3_fa;
4375
4376 /* DataTypeConversion: '<S557>/Data Type Conversion3' */
4377 L4_MABX_B.SPN526_TransActualGearRatio = L4_MABX_B.SFunction1_o2_jy;
4378
4379 /* Outputs for Enabled SubSystem: '<S551>/EEC1_001' incorporates:
4380 * EnablePort: '<S552>/Enable'
4381 */
4382 /* Constant: '<S423>/Enable_RX_EEC1_00' */
4383 if (L4_MABX_P.Enable_RX_EEC1_00_Value) {
4384 /* S-Function (rti_commonblock): '<S552>/S-Function1' */
4385 /* This comment workarounds a code generation problem */
4386
4387 /* dSPACE RTICAN RX Message Block: "EEC1_00" Id:217056256 */
4388 {
4389 UInt32 *CAN_Msg;
4390 static dsfloat time_old = 0.0;
4391
4392 /* Read status and timestamp info (previous message) */
4393 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF00400].timestamp !=
4394 time_old) {
4395 /* ... save timestamp info for the calculation of the RX status
4396 during the consecutive sample hit*/
4397 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF00400].
4398 timestamp;
4399
4400 /* ... set the processed flag to one */
4401 L4_MABX_B.SFunction1_o9_mg = 1.0;
4402 L4_MABX_B.SFunction1_o10_nr = (real_T)
4403 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF00400].timestamp;
4404 L4_MABX_B.SFunction1_o11_g0 = (real_T)
4405 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF00400].deltatime;
4406 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF00400].data;
4407
4408 /* Decode CAN message */
4409 {
4410 {
4411 rtican_Signal_t CAN_Sgn;
4412
4413 /* ...... "EngTorqueMode" (0|4, standard signal, unsigned int, little endian) */
4414 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4415 CAN_Sgn.UnsignedSgn &= 0x0000000F;
4416 L4_MABX_B.SFunction1_o1_am = ((real_T) CAN_Sgn.UnsignedSgn);
4417
4418 /* ...... "ActlEngPrcntTrqueHighResolution" (4|4, standard signal, unsigned int, little endian) */
4419 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4420 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4421 CAN_Sgn.UnsignedSgn &= 0x0000000F;
4422 L4_MABX_B.SFunction1_o2_lx = 0.125 * ( ((real_T) CAN_Sgn.UnsignedSgn)
4423 );
4424
4425 /* ...... "DriversDemandEngPercentTorque" (8|8, standard signal, unsigned int, little endian) */
4426 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
4427 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4428 L4_MABX_B.SFunction1_o3_hl = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
4429 );
4430
4431 /* ...... "ActualEngPercentTorque" (16|8, standard signal, unsigned int, little endian) */
4432 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4433 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4434 L4_MABX_B.SFunction1_o4_ms = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
4435 );
4436
4437 /* ...... "EngSpeed" (24|16, standard signal, unsigned int, little endian) */
4438 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4439 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
4440 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4441 L4_MABX_B.SFunction1_o5_lc = 0.125 * ( ((real_T) CAN_Sgn.UnsignedSgn)
4442 );
4443
4444 /* ...... "SrcAddrssOfCtrllngDvcFrEngCntrl" (40|8, standard signal, unsigned int, little endian) */
4445 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4446 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4447 L4_MABX_B.SFunction1_o6_o = ((real_T) CAN_Sgn.UnsignedSgn);
4448
4449 /* ...... "EngStarterMode" (48|4, standard signal, unsigned int, little endian) */
4450 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4451 CAN_Sgn.UnsignedSgn &= 0x0000000F;
4452 L4_MABX_B.SFunction1_o7_jh = ((real_T) CAN_Sgn.UnsignedSgn);
4453
4454 /* ...... "EngDemandPercentTorque" (56|8, standard signal, unsigned int, little endian) */
4455 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4456 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4457 L4_MABX_B.SFunction1_o8_a0 = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
4458 );
4459 }
4460 }
4461 } else {
4462 /* set RX status to 0 because no new message has arrived */
4463 L4_MABX_B.SFunction1_o9_mg = 0.0;
4464 }
4465 }
4466 }
4467
4468 /* End of Constant: '<S423>/Enable_RX_EEC1_00' */
4469 /* End of Outputs for SubSystem: '<S551>/EEC1_001' */
4470
4471 /* Outputs for Enabled SubSystem: '<S555>/EEC3_001' incorporates:
4472 * EnablePort: '<S556>/Enable'
4473 */
4474 /* Constant: '<S425>/Enable_RX_EEC3_00' */
4475 if (L4_MABX_P.Enable_RX_EEC3_00_Value) {
4476 /* S-Function (rti_commonblock): '<S556>/S-Function1' */
4477 /* This comment workarounds a code generation problem */
4478
4479 /* dSPACE RTICAN RX Message Block: "EEC3_00" Id:419356416 */
4480 {
4481 UInt32 *CAN_Msg;
4482 static dsfloat time_old = 0.0;
4483
4484 /* Read status and timestamp info (previous message) */
4485 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEDF00].timestamp !=
4486 time_old) {
4487 /* ... save timestamp info for the calculation of the RX status
4488 during the consecutive sample hit*/
4489 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEDF00].
4490 timestamp;
4491
4492 /* ... set the processed flag to one */
4493 L4_MABX_B.SFunction1_o3_fx = 1.0;
4494 L4_MABX_B.SFunction1_o4_ki = (real_T)
4495 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEDF00].timestamp;
4496 L4_MABX_B.SFunction1_o5_j4 = (real_T)
4497 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEDF00].deltatime;
4498 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEDF00].data;
4499
4500 /* Decode CAN message */
4501 {
4502 {
4503 rtican_Signal_t CAN_Sgn;
4504
4505 /* ...... "SPN514_NominalFrictionPercentTorque" (0|8, standard signal, unsigned int, little endian) */
4506 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4507 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4508 L4_MABX_B.SFunction1_o1_nf = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
4509 );
4510
4511 /* ...... "SPN2978_EstEngParasiticLossesPercentTorque" (32|8, standard signal, unsigned int, little endian) */
4512 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4513 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4514 L4_MABX_B.SFunction1_o2_eqk = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
4515 );
4516 }
4517 }
4518 } else {
4519 /* set RX status to 0 because no new message has arrived */
4520 L4_MABX_B.SFunction1_o3_fx = 0.0;
4521 }
4522 }
4523 }
4524
4525 /* End of Constant: '<S425>/Enable_RX_EEC3_00' */
4526 /* End of Outputs for SubSystem: '<S555>/EEC3_001' */
4527
4528 /* DataTypeConversion: '<S555>/Data Type Conversion2' */
4529 L4_MABX_B.SPN514_NominalFrictionPercentTo = L4_MABX_B.SFunction1_o1_nf;
4530
4531 /* DataTypeConversion: '<S555>/Data Type Conversion1' */
4532 L4_MABX_B.SPN2978_EstEngParasiticLossesPe = L4_MABX_B.SFunction1_o2_eqk;
4533
4534 /* Outputs for Enabled SubSystem: '<S498>/CVW_0B1' incorporates:
4535 * EnablePort: '<S499>/Enable'
4536 */
4537 /* Constant: '<S418>/Constant' */
4538 if (L4_MABX_P.Constant_Value_k5) {
4539 /* S-Function (rti_commonblock): '<S499>/S-Function1' */
4540 /* This comment workarounds a code generation problem */
4541
4542 /* dSPACE RTICAN RX Message Block: "CVW_0B" Id:419328011 */
4543 {
4544 UInt32 *CAN_Msg;
4545 static dsfloat time_old = 0.0;
4546
4547 /* Read status and timestamp info (previous message) */
4548 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE700B].timestamp !=
4549 time_old) {
4550 /* ... save timestamp info for the calculation of the RX status
4551 during the consecutive sample hit*/
4552 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE700B].
4553 timestamp;
4554
4555 /* ... set the processed flag to one */
4556 L4_MABX_B.SFunction1_o2_ex = 1.0;
4557 L4_MABX_B.SFunction1_o3_kh = (real_T)
4558 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE700B].timestamp;
4559 L4_MABX_B.SFunction1_o4_jm = (real_T)
4560 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE700B].deltatime;
4561 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE700B].data;
4562
4563 /* Decode CAN message */
4564 {
4565 {
4566 rtican_Signal_t CAN_Sgn;
4567
4568 /* ...... "SPN1760_GrossCombinationVehicleWeight" (16|16, standard signal, unsigned int, little endian) */
4569 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4570 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
4571 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4572 L4_MABX_B.SFunction1_o1_jm = 10 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
4573 }
4574 }
4575 } else {
4576 /* set RX status to 0 because no new message has arrived */
4577 L4_MABX_B.SFunction1_o2_ex = 0.0;
4578 }
4579 }
4580 }
4581
4582 /* End of Constant: '<S418>/Constant' */
4583 /* End of Outputs for SubSystem: '<S498>/CVW_0B1' */
4584
4585 /* DataTypeConversion: '<S498>/Data Type Conversion1' */
4586 L4_MABX_B.SPN1760_GrossCombinationVehicle = L4_MABX_B.SFunction1_o1_jm;
4587
4588 /* Outputs for Enabled SubSystem: '<S479>/ACC1_2A_' incorporates:
4589 * EnablePort: '<S480>/Enable'
4590 */
4591 /* Constant: '<S409>/Constant' */
4592 if (L4_MABX_P.Constant_Value_bih) {
4593 /* S-Function (rti_commonblock): '<S480>/S-Function1' */
4594 /* This comment workarounds a code generation problem */
4595
4596 /* dSPACE RTICAN RX Message Block: "ACC1_2A" Id:285110058 */
4597 {
4598 UInt32 *CAN_Msg;
4599 static dsfloat time_old = 0.0;
4600
4601 /* Read status and timestamp info (previous message) */
4602 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x10FE6F2A].timestamp !=
4603 time_old) {
4604 /* ... save timestamp info for the calculation of the RX status
4605 during the consecutive sample hit*/
4606 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x10FE6F2A].
4607 timestamp;
4608
4609 /* ... set the processed flag to one */
4610 L4_MABX_B.SFunction1_o11_a = 1.0;
4611 L4_MABX_B.SFunction1_o12_h = (real_T)
4612 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x10FE6F2A].timestamp;
4613 L4_MABX_B.SFunction1_o13_mf = (real_T)
4614 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x10FE6F2A].deltatime;
4615 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x10FE6F2A].data;
4616
4617 /* Decode CAN message */
4618 {
4619 {
4620 rtican_Signal_t CAN_Sgn;
4621
4622 /* ...... "SpeedOfForwardVehicle" (0|8, standard signal, unsigned int, little endian) */
4623 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4624 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4625 L4_MABX_B.SFunction1_o1_mb = ((real_T) CAN_Sgn.UnsignedSgn);
4626
4627 /* ...... "DistanceToForwardVehicle" (8|8, standard signal, unsigned int, little endian) */
4628 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
4629 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4630 L4_MABX_B.SFunction1_o2_lk = ((real_T) CAN_Sgn.UnsignedSgn);
4631
4632 /* ...... "AdaptiveCruiseCtrlSetSpeed" (16|8, standard signal, unsigned int, little endian) */
4633 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4634 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4635 L4_MABX_B.SFunction1_o3_hy = ((real_T) CAN_Sgn.UnsignedSgn);
4636
4637 /* ...... "AdaptiveCruiseCtrlMode" (24|3, standard signal, unsigned int, little endian) */
4638 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4639 CAN_Sgn.UnsignedSgn &= 0x00000007;
4640 L4_MABX_B.SFunction1_o4_ngb = ((real_T) CAN_Sgn.UnsignedSgn);
4641
4642 /* ...... "AdptveCruiseCtrlSetDistanceMode" (27|3, standard signal, unsigned int, little endian) */
4643 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4644 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 3;
4645 CAN_Sgn.UnsignedSgn &= 0x00000007;
4646 L4_MABX_B.SFunction1_o5_mt = ((real_T) CAN_Sgn.UnsignedSgn);
4647
4648 /* ...... "RoadCurvature" (32|16, standard signal, unsigned int, little endian) */
4649 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4650 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
4651 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4652 L4_MABX_B.SFunction1_o6_jn = -250 + ( 0.0078125 * ( ((real_T)
4653 CAN_Sgn.UnsignedSgn) ) );
4654
4655 /* ...... "ACCTargetDetected" (48|2, standard signal, unsigned int, little endian) */
4656 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4657 CAN_Sgn.UnsignedSgn &= 0x00000003;
4658 L4_MABX_B.SFunction1_o7_ojc = ((real_T) CAN_Sgn.UnsignedSgn);
4659
4660 /* ...... "ACCSystemShutoffWarning" (50|2, standard signal, unsigned int, little endian) */
4661 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4662 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4663 CAN_Sgn.UnsignedSgn &= 0x00000003;
4664 L4_MABX_B.SFunction1_o8_jl = ((real_T) CAN_Sgn.UnsignedSgn);
4665
4666 /* ...... "ACCDistanceAlertSignal" (52|2, standard signal, unsigned int, little endian) */
4667 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4668 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4669 CAN_Sgn.UnsignedSgn &= 0x00000003;
4670 L4_MABX_B.SFunction1_o9_oq3 = ((real_T) CAN_Sgn.UnsignedSgn);
4671
4672 /* ...... "ForwardCollisionWarning" (54|2, standard signal, unsigned int, little endian) */
4673 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4674 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4675 CAN_Sgn.UnsignedSgn &= 0x00000003;
4676 L4_MABX_B.SFunction1_o10_k = ((real_T) CAN_Sgn.UnsignedSgn);
4677 }
4678 }
4679 } else {
4680 /* set RX status to 0 because no new message has arrived */
4681 L4_MABX_B.SFunction1_o11_a = 0.0;
4682 }
4683 }
4684 }
4685
4686 /* End of Constant: '<S409>/Constant' */
4687 /* End of Outputs for SubSystem: '<S479>/ACC1_2A_' */
4688
4689 /* DataTypeConversion: '<S479>/Data Type Conversion12' */
4690 L4_MABX_B.ACCDistanceAlertSignal = L4_MABX_B.SFunction1_o9_oq3;
4691
4692 /* DataTypeConversion: '<S479>/Data Type Conversion13' */
4693 L4_MABX_B.ForwardCollisionWarning = L4_MABX_B.SFunction1_o10_k;
4694
4695 /* RelationalOperator: '<S464>/Operator' incorporates:
4696 * Constant: '<S407>/Constant'
4697 * Constant: '<S462>/Constant'
4698 */
4699 L4_MABX_B.Operator_n0 = (L4_MABX_P.Constant_Value_fl ==
4700 L4_MABX_P.Constant_Value_ch);
4701
4702 /* Outputs for Enabled SubSystem: '<S461>/CAN_TYPE1_RX_M1_C1' incorporates:
4703 * EnablePort: '<S463>/Enable'
4704 */
4705 if (L4_MABX_B.Operator_n0) {
4706 /* S-Function (rti_commonblock): '<S463>/S-Function1' */
4707 /* This comment workarounds a code generation problem */
4708
4709 /* dSPACE RTICAN RX Message Block: "TPCM_FF_00" Id:485293824 */
4710 {
4711 UInt32 *CAN_Msg;
4712 static dsfloat time_old = 0.0;
4713
4714 /* Read status and timestamp info (previous message) */
4715 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CECFF00].timestamp !=
4716 time_old) {
4717 /* ... save timestamp info for the calculation of the RX status
4718 during the consecutive sample hit*/
4719 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CECFF00].
4720 timestamp;
4721
4722 /* ... set the processed flag to one */
4723 L4_MABX_B.SFunction1_o9_ca = 1.0;
4724 L4_MABX_B.SFunction1_o10_n2 = (real_T)
4725 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CECFF00].timestamp;
4726 L4_MABX_B.SFunction1_o11_e3 = (real_T)
4727 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CECFF00].deltatime;
4728 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CECFF00].data;
4729
4730 /* Decode CAN message */
4731 {
4732 {
4733 rtican_Signal_t CAN_Sgn;
4734
4735 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
4736 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4737 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4738 L4_MABX_B.SFunction1_o1_p2 = ((real_T) CAN_Sgn.UnsignedSgn);
4739
4740 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
4741 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
4742 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4743 L4_MABX_B.SFunction1_o2_kb = ((real_T) CAN_Sgn.UnsignedSgn);
4744
4745 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
4746 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4747 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4748 L4_MABX_B.SFunction1_o3_gs = ((real_T) CAN_Sgn.UnsignedSgn);
4749
4750 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
4751 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4752 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4753 L4_MABX_B.SFunction1_o4_de = ((real_T) CAN_Sgn.UnsignedSgn);
4754
4755 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
4756 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4757 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4758 L4_MABX_B.SFunction1_o5_ny = ((real_T) CAN_Sgn.UnsignedSgn);
4759
4760 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
4761 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4762 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4763 L4_MABX_B.SFunction1_o6_kx = ((real_T) CAN_Sgn.UnsignedSgn);
4764
4765 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
4766 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4767 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4768 L4_MABX_B.SFunction1_o7_jm = ((real_T) CAN_Sgn.UnsignedSgn);
4769
4770 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
4771 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4772 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4773 L4_MABX_B.SFunction1_o8_kk = ((real_T) CAN_Sgn.UnsignedSgn);
4774 }
4775 }
4776 } else {
4777 /* set RX status to 0 because no new message has arrived */
4778 L4_MABX_B.SFunction1_o9_ca = 0.0;
4779 }
4780 }
4781 }
4782
4783 /* End of Outputs for SubSystem: '<S461>/CAN_TYPE1_RX_M1_C1' */
4784
4785 /* DataTypeConversion: '<S461>/Data Type Conversion' */
4786 PositionFinalLimited = L4_MABX_B.SFunction1_o1_p2;
4787 if (PositionFinalLimited < 256.0) {
4788 if (PositionFinalLimited >= 0.0) {
4789 starting_index = (uint8_T)PositionFinalLimited;
4790 } else {
4791 starting_index = 0U;
4792 }
4793 } else {
4794 starting_index = MAX_uint8_T;
4795 }
4796
4797 L4_MABX_B.DataTypeConversion_ft = starting_index;
4798
4799 /* End of DataTypeConversion: '<S461>/Data Type Conversion' */
4800
4801 /* DataTypeConversion: '<S461>/Data Type Conversion1' */
4802 PositionFinalLimited = L4_MABX_B.SFunction1_o2_kb;
4803 if (PositionFinalLimited < 256.0) {
4804 if (PositionFinalLimited >= 0.0) {
4805 starting_index = (uint8_T)PositionFinalLimited;
4806 } else {
4807 starting_index = 0U;
4808 }
4809 } else {
4810 starting_index = MAX_uint8_T;
4811 }
4812
4813 L4_MABX_B.DataTypeConversion1_h0 = starting_index;
4814
4815 /* End of DataTypeConversion: '<S461>/Data Type Conversion1' */
4816
4817 /* DataTypeConversion: '<S461>/Data Type Conversion2' */
4818 PositionFinalLimited = L4_MABX_B.SFunction1_o3_gs;
4819 if (PositionFinalLimited < 256.0) {
4820 if (PositionFinalLimited >= 0.0) {
4821 starting_index = (uint8_T)PositionFinalLimited;
4822 } else {
4823 starting_index = 0U;
4824 }
4825 } else {
4826 starting_index = MAX_uint8_T;
4827 }
4828
4829 L4_MABX_B.DataTypeConversion2_m = starting_index;
4830
4831 /* End of DataTypeConversion: '<S461>/Data Type Conversion2' */
4832
4833 /* DataTypeConversion: '<S461>/Data Type Conversion3' */
4834 PositionFinalLimited = L4_MABX_B.SFunction1_o4_de;
4835 if (PositionFinalLimited < 256.0) {
4836 if (PositionFinalLimited >= 0.0) {
4837 starting_index = (uint8_T)PositionFinalLimited;
4838 } else {
4839 starting_index = 0U;
4840 }
4841 } else {
4842 starting_index = MAX_uint8_T;
4843 }
4844
4845 L4_MABX_B.DataTypeConversion3_j = starting_index;
4846
4847 /* End of DataTypeConversion: '<S461>/Data Type Conversion3' */
4848
4849 /* DataTypeConversion: '<S461>/Data Type Conversion4' */
4850 PositionFinalLimited = L4_MABX_B.SFunction1_o5_ny;
4851 if (PositionFinalLimited < 256.0) {
4852 if (PositionFinalLimited >= 0.0) {
4853 starting_index = (uint8_T)PositionFinalLimited;
4854 } else {
4855 starting_index = 0U;
4856 }
4857 } else {
4858 starting_index = MAX_uint8_T;
4859 }
4860
4861 L4_MABX_B.DataTypeConversion4_o = starting_index;
4862
4863 /* End of DataTypeConversion: '<S461>/Data Type Conversion4' */
4864
4865 /* DataTypeConversion: '<S461>/Data Type Conversion5' */
4866 PositionFinalLimited = L4_MABX_B.SFunction1_o6_kx;
4867 if (PositionFinalLimited < 256.0) {
4868 if (PositionFinalLimited >= 0.0) {
4869 starting_index = (uint8_T)PositionFinalLimited;
4870 } else {
4871 starting_index = 0U;
4872 }
4873 } else {
4874 starting_index = MAX_uint8_T;
4875 }
4876
4877 L4_MABX_B.DataTypeConversion5_c = starting_index;
4878
4879 /* End of DataTypeConversion: '<S461>/Data Type Conversion5' */
4880
4881 /* DataTypeConversion: '<S461>/Data Type Conversion6' */
4882 PositionFinalLimited = L4_MABX_B.SFunction1_o7_jm;
4883 if (PositionFinalLimited < 256.0) {
4884 if (PositionFinalLimited >= 0.0) {
4885 starting_index = (uint8_T)PositionFinalLimited;
4886 } else {
4887 starting_index = 0U;
4888 }
4889 } else {
4890 starting_index = MAX_uint8_T;
4891 }
4892
4893 L4_MABX_B.DataTypeConversion6_n = starting_index;
4894
4895 /* End of DataTypeConversion: '<S461>/Data Type Conversion6' */
4896
4897 /* DataTypeConversion: '<S461>/Data Type Conversion7' */
4898 PositionFinalLimited = L4_MABX_B.SFunction1_o8_kk;
4899 if (PositionFinalLimited < 256.0) {
4900 if (PositionFinalLimited >= 0.0) {
4901 starting_index = (uint8_T)PositionFinalLimited;
4902 } else {
4903 starting_index = 0U;
4904 }
4905 } else {
4906 starting_index = MAX_uint8_T;
4907 }
4908
4909 L4_MABX_B.DataTypeConversion7_e = starting_index;
4910
4911 /* End of DataTypeConversion: '<S461>/Data Type Conversion7' */
4912
4913 /* MultiPortSwitch: '<S407>/Multiport_Switch' */
4914 L4_MABX_B.RawData[0] = L4_MABX_B.DataTypeConversion_ft;
4915 L4_MABX_B.RawData[1] = L4_MABX_B.DataTypeConversion1_h0;
4916 L4_MABX_B.RawData[2] = L4_MABX_B.DataTypeConversion2_m;
4917 L4_MABX_B.RawData[3] = L4_MABX_B.DataTypeConversion3_j;
4918 L4_MABX_B.RawData[4] = L4_MABX_B.DataTypeConversion4_o;
4919 L4_MABX_B.RawData[5] = L4_MABX_B.DataTypeConversion5_c;
4920 L4_MABX_B.RawData[6] = L4_MABX_B.DataTypeConversion6_n;
4921 L4_MABX_B.RawData[7] = L4_MABX_B.DataTypeConversion7_e;
4922
4923 /* DataTypeConversion: '<S455>/Data Type Conversion' */
4924 for (i = 0; i < 8; i++) {
4925 L4_MABX_B.DataTypeConversion_ho[i] = L4_MABX_B.RawData[i];
4926 }
4927
4928 /* End of DataTypeConversion: '<S455>/Data Type Conversion' */
4929
4930 /* RelationalOperator: '<S681>/Operator' incorporates:
4931 * Constant: '<S455>/Constant3'
4932 */
4933 L4_MABX_B.Operator_gv = (L4_MABX_B.DataTypeConversion_ho[0] ==
4934 L4_MABX_P.Constant3_Value_e);
4935
4936 /* Outputs for Enabled SubSystem: '<S455>/Decode_TPCM_BAM' incorporates:
4937 * EnablePort: '<S673>/Enable'
4938 */
4939 if (L4_MABX_B.Operator_gv) {
4940 /* SignalConversion: '<S684>/Signal Conversion' */
4941 L4_MABX_B.SPN2556_ControlByte_f = L4_MABX_B.DataTypeConversion_ho[0];
4942
4943 /* DataTypeConversion: '<S685>/Data Type Conversion' */
4944 L4_MABX_B.DataTypeConversion_lru = L4_MABX_B.DataTypeConversion_ho[1];
4945
4946 /* DataTypeConversion: '<S685>/Data Type Conversion1' */
4947 L4_MABX_B.DataTypeConversion1_pf = L4_MABX_B.DataTypeConversion_ho[2];
4948
4949 /* ArithShift: '<S685>/Shift Arithmetic2' */
4950 L4_MABX_B.ShiftArithmetic2_e = (uint16_T)(L4_MABX_B.DataTypeConversion1_pf <<
4951 8);
4952
4953 /* S-Function (sfix_bitop): '<S688>/Operator' */
4954 L4_MABX_B.Operator_do = (uint16_T)(L4_MABX_B.DataTypeConversion_lru |
4955 L4_MABX_B.ShiftArithmetic2_e);
4956
4957 /* DataTypeConversion: '<S688>/DataType' */
4958 L4_MABX_B.DataType_kq = L4_MABX_B.Operator_do;
4959
4960 /* SignalConversion: '<S686>/Signal Conversion' */
4961 L4_MABX_B.SPN2568_TotalNumberOfPackets = L4_MABX_B.DataTypeConversion_ho[3];
4962
4963 /* DataTypeConversion: '<S687>/Data Type Conversion' */
4964 L4_MABX_B.DataTypeConversion_ke = L4_MABX_B.DataTypeConversion_ho[5];
4965
4966 /* DataTypeConversion: '<S687>/Data Type Conversion1' */
4967 L4_MABX_B.DataTypeConversion1_ly = L4_MABX_B.DataTypeConversion_ho[6];
4968
4969 /* DataTypeConversion: '<S687>/Data Type Conversion2' */
4970 L4_MABX_B.DataTypeConversion2_a = L4_MABX_B.DataTypeConversion_ho[7];
4971
4972 /* ArithShift: '<S687>/Shift Arithmetic1' */
4973 L4_MABX_B.ShiftArithmetic1_h = L4_MABX_B.DataTypeConversion1_ly << 8;
4974
4975 /* ArithShift: '<S687>/Shift Arithmetic2' */
4976 L4_MABX_B.ShiftArithmetic2_f0 = L4_MABX_B.DataTypeConversion2_a << 16;
4977
4978 /* S-Function (sfix_bitop): '<S689>/Operator' */
4979 L4_MABX_B.Operator_hw = L4_MABX_B.DataTypeConversion_ke |
4980 L4_MABX_B.ShiftArithmetic1_h | L4_MABX_B.ShiftArithmetic2_f0;
4981
4982 /* DataTypeConversion: '<S689>/DataType' */
4983 L4_MABX_B.DataType_pu = L4_MABX_B.Operator_hw;
4984 }
4985
4986 /* End of Outputs for SubSystem: '<S455>/Decode_TPCM_BAM' */
4987
4988 /* RelationalOperator: '<S473>/Operator' incorporates:
4989 * Constant: '<S408>/Constant'
4990 * Constant: '<S471>/Constant'
4991 */
4992 L4_MABX_B.Operator_e2 = (L4_MABX_P.Constant_Value_hi ==
4993 L4_MABX_P.Constant_Value_gx);
4994
4995 /* Outputs for Enabled SubSystem: '<S470>/CAN_TYPE1_RX_M1_C1' incorporates:
4996 * EnablePort: '<S472>/Enable'
4997 */
4998 if (L4_MABX_B.Operator_e2) {
4999 /* S-Function (rti_commonblock): '<S472>/S-Function1' */
5000 /* This comment workarounds a code generation problem */
5001
5002 /* dSPACE RTICAN RX Message Block: "TPDT_FF_00" Id:485228288 */
5003 {
5004 UInt32 *CAN_Msg;
5005 static dsfloat time_old = 0.0;
5006
5007 /* Read status and timestamp info (previous message) */
5008 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CEBFF00].timestamp !=
5009 time_old) {
5010 /* ... save timestamp info for the calculation of the RX status
5011 during the consecutive sample hit*/
5012 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CEBFF00].
5013 timestamp;
5014
5015 /* ... set the processed flag to one */
5016 L4_MABX_B.SFunction1_o9_e = 1.0;
5017 L4_MABX_B.SFunction1_o10_is = (real_T)
5018 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CEBFF00].timestamp;
5019 L4_MABX_B.SFunction1_o11_c = (real_T)
5020 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CEBFF00].deltatime;
5021 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CEBFF00].data;
5022
5023 /* Decode CAN message */
5024 {
5025 {
5026 rtican_Signal_t CAN_Sgn;
5027
5028 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
5029 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5030 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5031 L4_MABX_B.SFunction1_o1_lz = ((real_T) CAN_Sgn.UnsignedSgn);
5032
5033 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
5034 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
5035 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5036 L4_MABX_B.SFunction1_o2_db = ((real_T) CAN_Sgn.UnsignedSgn);
5037
5038 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
5039 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
5040 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5041 L4_MABX_B.SFunction1_o3_on = ((real_T) CAN_Sgn.UnsignedSgn);
5042
5043 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
5044 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
5045 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5046 L4_MABX_B.SFunction1_o4_hb = ((real_T) CAN_Sgn.UnsignedSgn);
5047
5048 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
5049 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
5050 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5051 L4_MABX_B.SFunction1_o5_ir = ((real_T) CAN_Sgn.UnsignedSgn);
5052
5053 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
5054 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
5055 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5056 L4_MABX_B.SFunction1_o6_bs = ((real_T) CAN_Sgn.UnsignedSgn);
5057
5058 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
5059 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
5060 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5061 L4_MABX_B.SFunction1_o7_oo = ((real_T) CAN_Sgn.UnsignedSgn);
5062
5063 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
5064 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
5065 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5066 L4_MABX_B.SFunction1_o8_o = ((real_T) CAN_Sgn.UnsignedSgn);
5067 }
5068 }
5069 } else {
5070 /* set RX status to 0 because no new message has arrived */
5071 L4_MABX_B.SFunction1_o9_e = 0.0;
5072 }
5073 }
5074 }
5075
5076 /* End of Outputs for SubSystem: '<S470>/CAN_TYPE1_RX_M1_C1' */
5077
5078 /* DataTypeConversion: '<S470>/Data Type Conversion' */
5079 PositionFinalLimited = L4_MABX_B.SFunction1_o1_lz;
5080 if (PositionFinalLimited < 256.0) {
5081 if (PositionFinalLimited >= 0.0) {
5082 starting_index = (uint8_T)PositionFinalLimited;
5083 } else {
5084 starting_index = 0U;
5085 }
5086 } else {
5087 starting_index = MAX_uint8_T;
5088 }
5089
5090 L4_MABX_B.DataTypeConversion_jo = starting_index;
5091
5092 /* End of DataTypeConversion: '<S470>/Data Type Conversion' */
5093
5094 /* DataTypeConversion: '<S470>/Data Type Conversion1' */
5095 PositionFinalLimited = L4_MABX_B.SFunction1_o2_db;
5096 if (PositionFinalLimited < 256.0) {
5097 if (PositionFinalLimited >= 0.0) {
5098 starting_index = (uint8_T)PositionFinalLimited;
5099 } else {
5100 starting_index = 0U;
5101 }
5102 } else {
5103 starting_index = MAX_uint8_T;
5104 }
5105
5106 L4_MABX_B.DataTypeConversion1_htx = starting_index;
5107
5108 /* End of DataTypeConversion: '<S470>/Data Type Conversion1' */
5109
5110 /* DataTypeConversion: '<S470>/Data Type Conversion2' */
5111 PositionFinalLimited = L4_MABX_B.SFunction1_o3_on;
5112 if (PositionFinalLimited < 256.0) {
5113 if (PositionFinalLimited >= 0.0) {
5114 starting_index = (uint8_T)PositionFinalLimited;
5115 } else {
5116 starting_index = 0U;
5117 }
5118 } else {
5119 starting_index = MAX_uint8_T;
5120 }
5121
5122 L4_MABX_B.DataTypeConversion2_ho = starting_index;
5123
5124 /* End of DataTypeConversion: '<S470>/Data Type Conversion2' */
5125
5126 /* DataTypeConversion: '<S470>/Data Type Conversion3' */
5127 PositionFinalLimited = L4_MABX_B.SFunction1_o4_hb;
5128 if (PositionFinalLimited < 256.0) {
5129 if (PositionFinalLimited >= 0.0) {
5130 starting_index = (uint8_T)PositionFinalLimited;
5131 } else {
5132 starting_index = 0U;
5133 }
5134 } else {
5135 starting_index = MAX_uint8_T;
5136 }
5137
5138 L4_MABX_B.DataTypeConversion3_or = starting_index;
5139
5140 /* End of DataTypeConversion: '<S470>/Data Type Conversion3' */
5141
5142 /* DataTypeConversion: '<S470>/Data Type Conversion4' */
5143 PositionFinalLimited = L4_MABX_B.SFunction1_o5_ir;
5144 if (PositionFinalLimited < 256.0) {
5145 if (PositionFinalLimited >= 0.0) {
5146 starting_index = (uint8_T)PositionFinalLimited;
5147 } else {
5148 starting_index = 0U;
5149 }
5150 } else {
5151 starting_index = MAX_uint8_T;
5152 }
5153
5154 L4_MABX_B.DataTypeConversion4_p = starting_index;
5155
5156 /* End of DataTypeConversion: '<S470>/Data Type Conversion4' */
5157
5158 /* DataTypeConversion: '<S470>/Data Type Conversion5' */
5159 PositionFinalLimited = L4_MABX_B.SFunction1_o6_bs;
5160 if (PositionFinalLimited < 256.0) {
5161 if (PositionFinalLimited >= 0.0) {
5162 starting_index = (uint8_T)PositionFinalLimited;
5163 } else {
5164 starting_index = 0U;
5165 }
5166 } else {
5167 starting_index = MAX_uint8_T;
5168 }
5169
5170 L4_MABX_B.DataTypeConversion5_ps = starting_index;
5171
5172 /* End of DataTypeConversion: '<S470>/Data Type Conversion5' */
5173
5174 /* DataTypeConversion: '<S470>/Data Type Conversion6' */
5175 PositionFinalLimited = L4_MABX_B.SFunction1_o7_oo;
5176 if (PositionFinalLimited < 256.0) {
5177 if (PositionFinalLimited >= 0.0) {
5178 starting_index = (uint8_T)PositionFinalLimited;
5179 } else {
5180 starting_index = 0U;
5181 }
5182 } else {
5183 starting_index = MAX_uint8_T;
5184 }
5185
5186 L4_MABX_B.DataTypeConversion6_ny = starting_index;
5187
5188 /* End of DataTypeConversion: '<S470>/Data Type Conversion6' */
5189
5190 /* DataTypeConversion: '<S470>/Data Type Conversion7' */
5191 PositionFinalLimited = L4_MABX_B.SFunction1_o8_o;
5192 if (PositionFinalLimited < 256.0) {
5193 if (PositionFinalLimited >= 0.0) {
5194 starting_index = (uint8_T)PositionFinalLimited;
5195 } else {
5196 starting_index = 0U;
5197 }
5198 } else {
5199 starting_index = MAX_uint8_T;
5200 }
5201
5202 L4_MABX_B.DataTypeConversion7_iv = starting_index;
5203
5204 /* End of DataTypeConversion: '<S470>/Data Type Conversion7' */
5205
5206 /* MultiPortSwitch: '<S408>/Multiport_Switch' */
5207 L4_MABX_B.RawData_e[0] = L4_MABX_B.DataTypeConversion_jo;
5208 L4_MABX_B.RawData_e[1] = L4_MABX_B.DataTypeConversion1_htx;
5209 L4_MABX_B.RawData_e[2] = L4_MABX_B.DataTypeConversion2_ho;
5210 L4_MABX_B.RawData_e[3] = L4_MABX_B.DataTypeConversion3_or;
5211 L4_MABX_B.RawData_e[4] = L4_MABX_B.DataTypeConversion4_p;
5212 L4_MABX_B.RawData_e[5] = L4_MABX_B.DataTypeConversion5_ps;
5213 L4_MABX_B.RawData_e[6] = L4_MABX_B.DataTypeConversion6_ny;
5214 L4_MABX_B.RawData_e[7] = L4_MABX_B.DataTypeConversion7_iv;
5215
5216 /* DataTypeConversion: '<S456>/Data Type Conversion' */
5217 for (i = 0; i < 8; i++) {
5218 L4_MABX_B.DataTypeConversion_d5[i] = L4_MABX_B.RawData_e[i];
5219 }
5220
5221 /* End of DataTypeConversion: '<S456>/Data Type Conversion' */
5222
5223 /* S-Function (rti_commonblock): '<S814>/S-Function1' */
5224
5225 /* This comment workarounds a code generation problem */
5226
5227 /* End of Outputs for S-Function (rti_commonblock): '<S814>/S-Function1' */
5228
5229 /* RateTransition: '<S403>/Rate Transition' */
5230 switch (L4_MABX_DW.RateTransition_write_buf) {
5231 case 0:
5232 L4_MABX_DW.RateTransition_read_buf = 1;
5233 break;
5234
5235 case 1:
5236 L4_MABX_DW.RateTransition_read_buf = 0;
5237 break;
5238
5239 default:
5240 L4_MABX_DW.RateTransition_read_buf = L4_MABX_DW.RateTransition_last_buf_wr;
5241 break;
5242 }
5243
5244 if (L4_MABX_DW.RateTransition_read_buf != 0) {
5245 GLB_Absolute_Timestamp = L4_MABX_DW.RateTransition_Buffer1;
5246 } else {
5247 GLB_Absolute_Timestamp = L4_MABX_DW.RateTransition_Buffer0;
5248 }
5249
5250 L4_MABX_DW.RateTransition_read_buf = -1;
5251
5252 /* End of RateTransition: '<S403>/Rate Transition' */
5253
5254 /* DataTypeConversion: '<S470>/Data Type Conversion8' */
5255 L4_MABX_B.RX_status = (L4_MABX_B.SFunction1_o9_e != 0.0);
5256
5257 /* MultiPortSwitch: '<S408>/Multiport_Switch' */
5258 L4_MABX_B.RX_status_c = L4_MABX_B.RX_status;
5259
5260 /* RelationalOperator: '<S508>/Operator' incorporates:
5261 * Constant: '<S422>/Constant2'
5262 */
5263 L4_MABX_B.Operator_fy = (L4_MABX_B.DataType_pu == L4_MABX_P.Constant2_Value_hz);
5264
5265 /* Logic: '<S422>/Logical Operator' */
5266 L4_MABX_B.LogicalOperator_k = (L4_MABX_B.RX_status_c && L4_MABX_B.Operator_fy);
5267
5268 /* Outputs for Enabled SubSystem: '<S422>/CAN_RX_EC1_00' incorporates:
5269 * EnablePort: '<S506>/Enable'
5270 */
5271 if (L4_MABX_B.LogicalOperator_k) {
5272 /* UnitDelay: '<S506>/Unit Delay' */
5273 for (i = 0; i < 39; i++) {
5274 L4_MABX_B.UnitDelay_fl[i] = L4_MABX_DW.UnitDelay_DSTATE_ir[i];
5275 }
5276
5277 /* End of UnitDelay: '<S506>/Unit Delay' */
5278
5279 /* MATLAB Function: '<S506>/serialize_tpdt' */
5280 /* MATLAB Function 'INPUTS_PIC_KW/CAN_PIC_KW/CAN_RX_EC1_00/CAN_RX_EC1_00/serialize_tpdt': '<S510>:1' */
5281 /* '<S510>:1:9' */
5282 if (L4_MABX_B.DataTypeConversion_d5[0] > 1) {
5283 /* '<S510>:1:6' */
5284 /* '<S510>:1:7' */
5285 for (i = 0; i < 39; i++) {
5286 L4_MABX_B.Data_k[i] = L4_MABX_B.UnitDelay_fl[i];
5287 }
5288 } else {
5289 /* '<S510>:1:9' */
5290 for (i = 0; i < 39; i++) {
5291 L4_MABX_B.Data_k[i] = MAX_uint8_T;
5292 }
5293 }
5294
5295 /* '<S510>:1:11' */
5296 i = (int32_T)(7U * L4_MABX_B.DataTypeConversion_d5[0]);
5297 if ((uint32_T)i > 255U) {
5298 i = 255;
5299 }
5300
5301 tmp = i - 6U;
5302 if (tmp > (uint32_T)i) {
5303 tmp = 0U;
5304 }
5305
5306 i = (int32_T)tmp;
5307 starting_index = (uint8_T)i;
5308
5309 /* '<S510>:1:12' */
5310 L4_MABX_B.Data_k[starting_index - 1] = L4_MABX_B.DataTypeConversion_d5[1];
5311 L4_MABX_B.Data_k[starting_index] = L4_MABX_B.DataTypeConversion_d5[2];
5312 L4_MABX_B.Data_k[starting_index + 1] = L4_MABX_B.DataTypeConversion_d5[3];
5313 L4_MABX_B.Data_k[starting_index + 2] = L4_MABX_B.DataTypeConversion_d5[4];
5314 L4_MABX_B.Data_k[starting_index + 3] = L4_MABX_B.DataTypeConversion_d5[5];
5315 L4_MABX_B.Data_k[starting_index + 4] = L4_MABX_B.DataTypeConversion_d5[6];
5316 L4_MABX_B.Data_k[starting_index + 5] = L4_MABX_B.DataTypeConversion_d5[7];
5317
5318 /* '<S510>:1:13' */
5319 L4_MABX_B.RX_status_gx = (L4_MABX_B.DataTypeConversion_d5[0] ==
5320 L4_MABX_B.SPN2568_TotalNumberOfPackets);
5321
5322 /* End of MATLAB Function: '<S506>/serialize_tpdt' */
5323
5324 /* Outputs for Enabled SubSystem: '<S506>/Decode' incorporates:
5325 * EnablePort: '<S509>/Enable'
5326 */
5327 if (L4_MABX_B.RX_status_gx) {
5328 /* Inport: '<S509>/Inport' */
5329 for (i = 0; i < 39; i++) {
5330 L4_MABX_B.Inport_d[i] = L4_MABX_B.Data_k[i];
5331 }
5332
5333 /* End of Inport: '<S509>/Inport' */
5334
5335 /* Inport: '<S509>/timeStamp' */
5336 L4_MABX_B.timeStamp_d = GLB_Absolute_Timestamp;
5337
5338 /* UnitDelay: '<S509>/Unit_Delay' */
5339 L4_MABX_B.Unit_Delay_p = L4_MABX_DW.Unit_Delay_DSTATE_g;
5340
5341 /* Sum: '<S509>/Subtract' */
5342 L4_MABX_B.Subtract_kz = (real32_T)(L4_MABX_B.timeStamp_d -
5343 L4_MABX_B.Unit_Delay_p);
5344 }
5345
5346 /* End of Outputs for SubSystem: '<S506>/Decode' */
5347 }
5348
5349 /* End of Outputs for SubSystem: '<S422>/CAN_RX_EC1_00' */
5350
5351 /* DataTypeConversion: '<S507>/Data Type Conversion' */
5352 for (i = 0; i < 39; i++) {
5353 L4_MABX_B.DataTypeConversion_mp[i] = L4_MABX_B.Inport_d[i];
5354 }
5355
5356 /* End of DataTypeConversion: '<S507>/Data Type Conversion' */
5357
5358 /* DataTypeConversion: '<S518>/Data Type Conversion' */
5359 L4_MABX_B.DataTypeConversion_f5 = L4_MABX_B.DataTypeConversion_mp[19];
5360
5361 /* DataTypeConversion: '<S518>/Data Type Conversion1' */
5362 L4_MABX_B.DataTypeConversion1_ke = L4_MABX_B.DataTypeConversion_mp[20];
5363
5364 /* ArithShift: '<S518>/Shift Arithmetic' */
5365 L4_MABX_B.ShiftArithmetic = (uint16_T)(L4_MABX_B.DataTypeConversion1_ke << 8);
5366
5367 /* S-Function (sfix_bitop): '<S543>/Operator' */
5368 L4_MABX_B.Operator_ie = (uint16_T)(L4_MABX_B.DataTypeConversion_f5 |
5369 L4_MABX_B.ShiftArithmetic);
5370
5371 /* DataTypeConversion: '<S543>/DataType' */
5372 L4_MABX_B.DataType_oq3 = L4_MABX_B.Operator_ie;
5373
5374 /* DataTypeConversion: '<S518>/Data Type Conversion2' */
5375 L4_MABX_B.SPN544_EngineReferenceTorque = L4_MABX_B.DataType_oq3;
5376
5377 /* Outputs for Enabled SubSystem: '<S628>/VDC1_0B_' incorporates:
5378 * EnablePort: '<S629>/Enable'
5379 */
5380 /* Constant: '<S442>/Constant' */
5381 if (L4_MABX_P.Constant_Value_ctb) {
5382 /* S-Function (rti_commonblock): '<S629>/S-Function1' */
5383 /* This comment workarounds a code generation problem */
5384
5385 /* dSPACE RTICAN RX Message Block: "VDC1_0B" Id:419319563 */
5386 {
5387 UInt32 *CAN_Msg;
5388 static dsfloat time_old = 0.0;
5389
5390 /* Read status and timestamp info (previous message) */
5391 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE4F0B].timestamp !=
5392 time_old) {
5393 /* ... save timestamp info for the calculation of the RX status
5394 during the consecutive sample hit*/
5395 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE4F0B].
5396 timestamp;
5397
5398 /* ... set the processed flag to one */
5399 L4_MABX_B.SFunction1_o8_p = 1.0;
5400 L4_MABX_B.SFunction1_o9_p = (real_T)
5401 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE4F0B].timestamp;
5402 L4_MABX_B.SFunction1_o10 = (real_T)
5403 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE4F0B].deltatime;
5404 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE4F0B].data;
5405
5406 /* Decode CAN message */
5407 {
5408 {
5409 rtican_Signal_t CAN_Sgn;
5410
5411 /* ...... "VDCInformationSignal" (0|2, standard signal, unsigned int, little endian) */
5412 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5413 CAN_Sgn.UnsignedSgn &= 0x00000003;
5414 L4_MABX_B.SFunction1_o1_ku = ((real_T) CAN_Sgn.UnsignedSgn);
5415
5416 /* ...... "VDCFullyOperational" (2|2, standard signal, unsigned int, little endian) */
5417 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5418 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
5419 CAN_Sgn.UnsignedSgn &= 0x00000003;
5420 L4_MABX_B.SFunction1_o2_cj = ((real_T) CAN_Sgn.UnsignedSgn);
5421
5422 /* ...... "VDCBrakeLightRq" (4|2, standard signal, unsigned int, little endian) */
5423 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5424 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
5425 CAN_Sgn.UnsignedSgn &= 0x00000003;
5426 L4_MABX_B.SFunction1_o3_f = ((real_T) CAN_Sgn.UnsignedSgn);
5427
5428 /* ...... "ROPEngCtrlActive" (8|2, standard signal, unsigned int, little endian) */
5429 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
5430 CAN_Sgn.UnsignedSgn &= 0x00000003;
5431 L4_MABX_B.SFunction1_o4_i3 = ((real_T) CAN_Sgn.UnsignedSgn);
5432
5433 /* ...... "ROPBrakeCtrlActive" (10|2, standard signal, unsigned int, little endian) */
5434 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
5435 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
5436 CAN_Sgn.UnsignedSgn &= 0x00000003;
5437 L4_MABX_B.SFunction1_o5_o = ((real_T) CAN_Sgn.UnsignedSgn);
5438
5439 /* ...... "YCEngCtrlActive" (12|2, standard signal, unsigned int, little endian) */
5440 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
5441 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
5442 CAN_Sgn.UnsignedSgn &= 0x00000003;
5443 L4_MABX_B.SFunction1_o6_n = ((real_T) CAN_Sgn.UnsignedSgn);
5444
5445 /* ...... "YCBrakeCtrlActive" (14|2, standard signal, unsigned int, little endian) */
5446 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
5447 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
5448 CAN_Sgn.UnsignedSgn &= 0x00000003;
5449 L4_MABX_B.SFunction1_o7_c = ((real_T) CAN_Sgn.UnsignedSgn);
5450 }
5451 }
5452 } else {
5453 /* set RX status to 0 because no new message has arrived */
5454 L4_MABX_B.SFunction1_o8_p = 0.0;
5455 }
5456 }
5457 }
5458
5459 /* End of Constant: '<S442>/Constant' */
5460 /* End of Outputs for SubSystem: '<S628>/VDC1_0B_' */
5461
5462 /* Outputs for Enabled SubSystem: '<S630>/VDC2_0B1' incorporates:
5463 * EnablePort: '<S631>/Enable'
5464 */
5465 /* Constant: '<S443>/Constant' */
5466 if (L4_MABX_P.Constant_Value_hfz) {
5467 /* S-Function (rti_commonblock): '<S631>/S-Function1' */
5468 /* This comment workarounds a code generation problem */
5469
5470 /* dSPACE RTICAN RX Message Block: "VDC2_0B" Id:418384139 */
5471 {
5472 UInt32 *CAN_Msg;
5473 static dsfloat time_old = 0.0;
5474
5475 /* Read status and timestamp info (previous message) */
5476 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0090B].timestamp !=
5477 time_old) {
5478 /* ... save timestamp info for the calculation of the RX status
5479 during the consecutive sample hit*/
5480 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0090B].
5481 timestamp;
5482
5483 /* ... set the processed flag to one */
5484 L4_MABX_B.SFunction1_o7_d = 1.0;
5485 L4_MABX_B.SFunction1_o8_n = (real_T)
5486 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0090B].timestamp;
5487 L4_MABX_B.SFunction1_o9 = (real_T)
5488 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0090B].deltatime;
5489 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0090B].data;
5490
5491 /* Decode CAN message */
5492 {
5493 {
5494 rtican_Signal_t CAN_Sgn;
5495
5496 /* ...... "SteerWheelAngle" (0|16, standard signal, unsigned int, little endian) */
5497 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5498 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
5499 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
5500 SteerWheelAngle = -31.374 + ( 0.0009765625 * ( ((real_T)
5501 CAN_Sgn.UnsignedSgn) ) );
5502
5503 /* ...... "SteerWheelTurnCounter" (16|6, standard signal, unsigned int, little endian) */
5504 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
5505 CAN_Sgn.UnsignedSgn &= 0x0000003F;
5506 L4_MABX_B.SFunction1_o2_n = -32 + ( ((real_T) CAN_Sgn.UnsignedSgn) );
5507
5508 /* ...... "SteerWheelAngleSensorType" (22|2, standard signal, unsigned int, little endian) */
5509 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
5510 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
5511 CAN_Sgn.UnsignedSgn &= 0x00000003;
5512 L4_MABX_B.SFunction1_o3_kg = ((real_T) CAN_Sgn.UnsignedSgn);
5513
5514 /* ...... "YawRate" (24|16, standard signal, unsigned int, little endian) */
5515 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
5516 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
5517 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
5518 YawRate = -3.92 + ( 0.0001220703125 * ( ((real_T)
5519 CAN_Sgn.UnsignedSgn) ) );
5520
5521 /* ...... "LateralAcceleration" (40|16, standard signal, unsigned int, little endian) */
5522 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
5523 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
5524 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
5525 L4_MABX_B.SFunction1_o5_j = -15.687 + ( 0.00048828125 * ( ((real_T)
5526 CAN_Sgn.UnsignedSgn) ) );
5527
5528 /* ...... "LongitudinalAcceleration" (56|8, standard signal, unsigned int, little endian) */
5529 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
5530 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5531 SPN1810_LongitudinalAcceleration = -12.5 + ( 0.1 * ( ((real_T)
5532 CAN_Sgn.UnsignedSgn) ) );
5533 }
5534 }
5535 } else {
5536 /* set RX status to 0 because no new message has arrived */
5537 L4_MABX_B.SFunction1_o7_d = 0.0;
5538 }
5539 }
5540 }
5541
5542 /* End of Constant: '<S443>/Constant' */
5543 /* End of Outputs for SubSystem: '<S630>/VDC2_0B1' */
5544
5545 /* UnitDelay: '<S635>/Unit_Delay3' */
5546 L4_MABX_B.Unit_Delay3 = L4_MABX_DW.Unit_Delay3_DSTATE;
5547
5548 /* RelationalOperator: '<S636>/Operator' incorporates:
5549 * Constant: '<S445>/Constant2'
5550 */
5551 L4_MABX_B.Operator_oi = (L4_MABX_B.DataType_pu == L4_MABX_P.Constant2_Value_f);
5552
5553 /* Logic: '<S445>/Logical Operator' */
5554 L4_MABX_B.LogicalOperator_n = (L4_MABX_B.RX_status_c && L4_MABX_B.Operator_oi);
5555
5556 /* Outputs for Enabled SubSystem: '<S445>/CAN_RX_VI_00' incorporates:
5557 * EnablePort: '<S634>/Enable'
5558 */
5559 if (L4_MABX_B.LogicalOperator_n) {
5560 /* UnitDelay: '<S634>/Unit Delay' */
5561 for (i = 0; i < 17; i++) {
5562 L4_MABX_B.UnitDelay_n[i] = L4_MABX_DW.UnitDelay_DSTATE_g[i];
5563 }
5564
5565 /* End of UnitDelay: '<S634>/Unit Delay' */
5566
5567 /* MATLAB Function: '<S634>/serialize_tpdt' */
5568 /* MATLAB Function 'INPUTS_PIC_KW/CAN_PIC_KW/CAN_RX_VI_00/CAN_RX_VI_00/serialize_tpdt': '<S638>:1' */
5569 /* '<S638>:1:9' */
5570 if (L4_MABX_B.DataTypeConversion_d5[0] > 1) {
5571 /* '<S638>:1:6' */
5572 /* '<S638>:1:7' */
5573 for (i = 0; i < 17; i++) {
5574 L4_MABX_B.Data[i] = L4_MABX_B.UnitDelay_n[i];
5575 }
5576 } else {
5577 /* '<S638>:1:9' */
5578 for (i = 0; i < 17; i++) {
5579 L4_MABX_B.Data[i] = MAX_uint8_T;
5580 }
5581 }
5582
5583 /* '<S638>:1:11' */
5584 i = (int32_T)(7U * L4_MABX_B.DataTypeConversion_d5[0]);
5585 if ((uint32_T)i > 255U) {
5586 i = 255;
5587 }
5588
5589 tmp = i - 6U;
5590 if (tmp > (uint32_T)i) {
5591 tmp = 0U;
5592 }
5593
5594 i = (int32_T)tmp;
5595 starting_index = (uint8_T)i;
5596
5597 /* '<S638>:1:12' */
5598 L4_MABX_B.Data[starting_index - 1] = L4_MABX_B.DataTypeConversion_d5[1];
5599 L4_MABX_B.Data[starting_index] = L4_MABX_B.DataTypeConversion_d5[2];
5600 L4_MABX_B.Data[starting_index + 1] = L4_MABX_B.DataTypeConversion_d5[3];
5601 L4_MABX_B.Data[starting_index + 2] = L4_MABX_B.DataTypeConversion_d5[4];
5602 L4_MABX_B.Data[starting_index + 3] = L4_MABX_B.DataTypeConversion_d5[5];
5603 L4_MABX_B.Data[starting_index + 4] = L4_MABX_B.DataTypeConversion_d5[6];
5604 L4_MABX_B.Data[starting_index + 5] = L4_MABX_B.DataTypeConversion_d5[7];
5605
5606 /* '<S638>:1:13' */
5607 L4_MABX_B.RX_status_lz = (L4_MABX_B.DataTypeConversion_d5[0] ==
5608 L4_MABX_B.SPN2568_TotalNumberOfPackets);
5609
5610 /* End of MATLAB Function: '<S634>/serialize_tpdt' */
5611
5612 /* Outputs for Enabled SubSystem: '<S634>/Decode' incorporates:
5613 * EnablePort: '<S637>/Enable'
5614 */
5615 if (L4_MABX_B.RX_status_lz) {
5616 /* Inport: '<S637>/Inport' */
5617 for (i = 0; i < 17; i++) {
5618 L4_MABX_B.Inport[i] = L4_MABX_B.Data[i];
5619 }
5620
5621 /* End of Inport: '<S637>/Inport' */
5622
5623 /* Inport: '<S637>/timeStamp' */
5624 L4_MABX_B.timeStamp = GLB_Absolute_Timestamp;
5625
5626 /* UnitDelay: '<S637>/Unit_Delay' */
5627 L4_MABX_B.Unit_Delay_h = L4_MABX_DW.Unit_Delay_DSTATE_p;
5628
5629 /* Sum: '<S637>/Subtract' */
5630 L4_MABX_B.Subtract_cx = (real32_T)(L4_MABX_B.timeStamp -
5631 L4_MABX_B.Unit_Delay_h);
5632 }
5633
5634 /* End of Outputs for SubSystem: '<S634>/Decode' */
5635 }
5636
5637 /* End of Outputs for SubSystem: '<S445>/CAN_RX_VI_00' */
5638
5639 /* DataTypeConversion: '<S635>/Data Type Conversion' */
5640 L4_MABX_B.DataTypeConversion_hb = L4_MABX_B.Inport[0];
5641
5642 /* DataTypeConversion: '<S635>/Data Type Conversion1' */
5643 L4_MABX_B.DataTypeConversion1_el = L4_MABX_B.Inport[1];
5644
5645 /* DataTypeConversion: '<S635>/Data Type Conversion2' */
5646 L4_MABX_B.DataTypeConversion2_cy = L4_MABX_B.Inport[2];
5647
5648 /* DataTypeConversion: '<S635>/Data Type Conversion3' */
5649 L4_MABX_B.DataTypeConversion3_ci = L4_MABX_B.Inport[3];
5650
5651 /* DataTypeConversion: '<S635>/Data Type Conversion4' */
5652 L4_MABX_B.DataTypeConversion4_jp = L4_MABX_B.Inport[4];
5653
5654 /* DataTypeConversion: '<S635>/Data Type Conversion5' */
5655 L4_MABX_B.DataTypeConversion5_e = L4_MABX_B.Inport[5];
5656
5657 /* DataTypeConversion: '<S635>/Data Type Conversion6' */
5658 L4_MABX_B.DataTypeConversion6_m = L4_MABX_B.Inport[6];
5659
5660 /* DataTypeConversion: '<S635>/Data Type Conversion7' */
5661 L4_MABX_B.DataTypeConversion7_c = L4_MABX_B.Inport[7];
5662
5663 /* DataTypeConversion: '<S635>/Data Type Conversion8' */
5664 L4_MABX_B.DataTypeConversion8_e = L4_MABX_B.Inport[8];
5665
5666 /* DataTypeConversion: '<S635>/Data Type Conversion9' */
5667 L4_MABX_B.DataTypeConversion9_k = L4_MABX_B.Inport[9];
5668
5669 /* DataTypeConversion: '<S635>/Data Type Conversion10' */
5670 L4_MABX_B.DataTypeConversion10_n = L4_MABX_B.Inport[10];
5671
5672 /* DataTypeConversion: '<S635>/Data Type Conversion11' */
5673 L4_MABX_B.DataTypeConversion11_i = L4_MABX_B.Inport[11];
5674
5675 /* DataTypeConversion: '<S635>/Data Type Conversion12' */
5676 L4_MABX_B.DataTypeConversion12 = L4_MABX_B.Inport[12];
5677
5678 /* DataTypeConversion: '<S635>/Data Type Conversion14' */
5679 L4_MABX_B.DataTypeConversion14_n = L4_MABX_B.Inport[13];
5680
5681 /* DataTypeConversion: '<S635>/Data Type Conversion13' */
5682 L4_MABX_B.DataTypeConversion13_k = L4_MABX_B.Inport[14];
5683
5684 /* DataTypeConversion: '<S635>/Data Type Conversion15' */
5685 L4_MABX_B.DataTypeConversion15_c = L4_MABX_B.Inport[15];
5686
5687 /* DataTypeConversion: '<S635>/Data Type Conversion16' */
5688 L4_MABX_B.DataTypeConversion16_d = L4_MABX_B.Inport[16];
5689
5690 /* RelationalOperator: '<S635>/Relational Operator1' incorporates:
5691 * Constant: '<S635>/TRUCK_1571_VIN_CPV'
5692 */
5693 L4_MABX_B.RelationalOperator1_mp[0] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[0]
5694 != L4_MABX_B.DataTypeConversion_hb);
5695 L4_MABX_B.RelationalOperator1_mp[1] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[1]
5696 != L4_MABX_B.DataTypeConversion1_el);
5697 L4_MABX_B.RelationalOperator1_mp[2] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[2]
5698 != L4_MABX_B.DataTypeConversion2_cy);
5699 L4_MABX_B.RelationalOperator1_mp[3] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[3]
5700 != L4_MABX_B.DataTypeConversion3_ci);
5701 L4_MABX_B.RelationalOperator1_mp[4] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[4]
5702 != L4_MABX_B.DataTypeConversion4_jp);
5703 L4_MABX_B.RelationalOperator1_mp[5] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[5]
5704 != L4_MABX_B.DataTypeConversion5_e);
5705 L4_MABX_B.RelationalOperator1_mp[6] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[6]
5706 != L4_MABX_B.DataTypeConversion6_m);
5707 L4_MABX_B.RelationalOperator1_mp[7] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[7]
5708 != L4_MABX_B.DataTypeConversion7_c);
5709 L4_MABX_B.RelationalOperator1_mp[8] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[8]
5710 != L4_MABX_B.DataTypeConversion8_e);
5711 L4_MABX_B.RelationalOperator1_mp[9] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[9]
5712 != L4_MABX_B.DataTypeConversion9_k);
5713 L4_MABX_B.RelationalOperator1_mp[10] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[10]
5714 != L4_MABX_B.DataTypeConversion10_n);
5715 L4_MABX_B.RelationalOperator1_mp[11] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[11]
5716 != L4_MABX_B.DataTypeConversion11_i);
5717 L4_MABX_B.RelationalOperator1_mp[12] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[12]
5718 != L4_MABX_B.DataTypeConversion12);
5719 L4_MABX_B.RelationalOperator1_mp[13] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[13]
5720 != L4_MABX_B.DataTypeConversion14_n);
5721 L4_MABX_B.RelationalOperator1_mp[14] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[14]
5722 != L4_MABX_B.DataTypeConversion13_k);
5723 L4_MABX_B.RelationalOperator1_mp[15] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[15]
5724 != L4_MABX_B.DataTypeConversion15_c);
5725 L4_MABX_B.RelationalOperator1_mp[16] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[16]
5726 != L4_MABX_B.DataTypeConversion16_d);
5727
5728 /* Sum: '<S635>/Add' */
5729 tmp = 0U;
5730 for (i = 0; i < 17; i++) {
5731 tmp += L4_MABX_B.RelationalOperator1_mp[i];
5732 }
5733
5734 L4_MABX_B.Add_pe = (uint8_T)tmp;
5735
5736 /* End of Sum: '<S635>/Add' */
5737
5738 /* RelationalOperator: '<S639>/Compare' incorporates:
5739 * Constant: '<S639>/Constant'
5740 */
5741 L4_MABX_B.Compare_f = (L4_MABX_B.Add_pe == L4_MABX_P.Constant_Value_nz);
5742
5743 /* Logic: '<S635>/Logical Operator' */
5744 L4_MABX_B.LogicalOperator_na = (L4_MABX_B.Unit_Delay3 && L4_MABX_B.Compare_f);
5745
5746 /* UnitDelay: '<S635>/Unit_Delay' */
5747 L4_MABX_B.Unit_Delay_ep = L4_MABX_DW.Unit_Delay_DSTATE_bo;
5748
5749 /* Logic: '<S641>/Logical Operator3' */
5750 L4_MABX_B.LogicalOperator3_h = !L4_MABX_B.Unit_Delay_ep;
5751
5752 /* UnitDelay: '<S641>/Unit_Delay' */
5753 L4_MABX_B.Unit_Delay_ej = L4_MABX_DW.Unit_Delay_DSTATE_cv;
5754
5755 /* Logic: '<S641>/Logical Operator' */
5756 L4_MABX_B.LogicalOperator_m = (L4_MABX_B.LogicalOperator3_h &&
5757 L4_MABX_B.Unit_Delay_ej);
5758
5759 /* Logic: '<S641>/Logical Operator1' */
5760 L4_MABX_B.LogicalOperator1_j = (L4_MABX_B.LogicalOperator_na ||
5761 L4_MABX_B.LogicalOperator_m);
5762
5763 /* Outputs for Enabled SubSystem: '<S616>/SSI2_031' incorporates:
5764 * EnablePort: '<S617>/Enable'
5765 */
5766 /* Constant: '<S436>/Constant' */
5767 if (L4_MABX_P.Constant_Value_e5 > 0.0) {
5768 /* S-Function (rti_commonblock): '<S617>/S-Function1' */
5769 /* This comment workarounds a code generation problem */
5770
5771 /* dSPACE RTICAN RX Message Block: "SSI2_03" Id:217065731 */
5772 {
5773 UInt32 *CAN_Msg;
5774 static dsfloat time_old = 0.0;
5775
5776 /* Read status and timestamp info (previous message) */
5777 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02903].timestamp !=
5778 time_old) {
5779 /* ... save timestamp info for the calculation of the RX status
5780 during the consecutive sample hit*/
5781 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02903].
5782 timestamp;
5783
5784 /* ... set the processed flag to one */
5785 L4_MABX_B.SFunction1_o8_ge = 1.0;
5786 L4_MABX_B.SFunction1_o9_c = (real_T)
5787 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02903].timestamp;
5788 L4_MABX_B.SFunction1_o10_m = (real_T)
5789 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02903].deltatime;
5790 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02903].data;
5791
5792 /* Decode CAN message */
5793 {
5794 {
5795 rtican_Signal_t CAN_Sgn;
5796
5797 /* ...... "PitchAngleExRange" (0|24, standard signal, unsigned int, little endian) */
5798 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5799 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
5800 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[2];
5801 CAN_Sgn.UnsignedSgn &= 0x00FFFFFF;
5802 L4_MABX_B.SFunction1_o1_bp = -250 + ( 3.0517578125E-5 * ( ((real_T)
5803 CAN_Sgn.UnsignedSgn) ) );
5804
5805 /* ...... "RollAngleExRange" (24|24, standard signal, unsigned int, little endian) */
5806 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
5807 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
5808 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[5];
5809 CAN_Sgn.UnsignedSgn &= 0x00FFFFFF;
5810 L4_MABX_B.SFunction1_o2_aw = -250 + ( 3.0517578125E-5 * ( ((real_T)
5811 CAN_Sgn.UnsignedSgn) ) );
5812
5813 /* ...... "PitchAngleExRangeCompensation" (48|2, standard signal, unsigned int, little endian) */
5814 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
5815 CAN_Sgn.UnsignedSgn &= 0x00000003;
5816 L4_MABX_B.SFunction1_o3_bj = ((real_T) CAN_Sgn.UnsignedSgn);
5817
5818 /* ...... "PitchAngleExRangeFigureOfMerit" (50|2, standard signal, unsigned int, little endian) */
5819 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
5820 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
5821 CAN_Sgn.UnsignedSgn &= 0x00000003;
5822 L4_MABX_B.SFunction1_o4_he = ((real_T) CAN_Sgn.UnsignedSgn);
5823
5824 /* ...... "RollAngleExRangeCompensation" (52|2, standard signal, unsigned int, little endian) */
5825 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
5826 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
5827 CAN_Sgn.UnsignedSgn &= 0x00000003;
5828 L4_MABX_B.SFunction1_o5_pa = ((real_T) CAN_Sgn.UnsignedSgn);
5829
5830 /* ...... "RollAngleExRangeFigureOfMerit" (54|2, standard signal, unsigned int, little endian) */
5831 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
5832 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
5833 CAN_Sgn.UnsignedSgn &= 0x00000003;
5834 L4_MABX_B.SFunction1_o6_gm = ((real_T) CAN_Sgn.UnsignedSgn);
5835
5836 /* ...... "RllAndPtchExRngMsurementLatency" (56|8, standard signal, unsigned int, little endian) */
5837 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
5838 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5839 L4_MABX_B.SFunction1_o7_h = 0.5 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
5840 }
5841 }
5842 } else {
5843 /* set RX status to 0 because no new message has arrived */
5844 L4_MABX_B.SFunction1_o8_ge = 0.0;
5845 }
5846 }
5847 }
5848
5849 /* End of Constant: '<S436>/Constant' */
5850 /* End of Outputs for SubSystem: '<S616>/SSI2_031' */
5851
5852 /* DataTypeConversion: '<S616>/Data Type Conversion1' */
5853 L4_MABX_B.PitchAngleExRange = L4_MABX_B.SFunction1_o1_bp;
5854
5855 /* Outputs for Enabled SubSystem: '<S607>/PX2_LanePosEst' incorporates:
5856 * EnablePort: '<S610>/Enable'
5857 */
5858 /* Constant: '<S433>/Constant' */
5859 if (L4_MABX_P.Constant_Value_ao) {
5860 /* S-Function (rti_commonblock): '<S610>/S-Function1' */
5861 /* This comment workarounds a code generation problem */
5862
5863 /* dSPACE RTICAN RX Message Block: "PX2_LanePosEst" Id:769 */
5864 {
5865 UInt32 *CAN_Msg;
5866 static dsfloat time_old = 0.0;
5867
5868 /* Read status and timestamp info (previous message) */
5869 if (can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x301].timestamp !=
5870 time_old) {
5871 /* ... save timestamp info for the calculation of the RX status
5872 during the consecutive sample hit*/
5873 time_old = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x301].timestamp;
5874
5875 /* ... set the processed flag to one */
5876 L4_MABX_B.SFunction1_o5_eu = 1.0;
5877 L4_MABX_B.SFunction1_o6_hm = (real_T)
5878 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x301].timestamp;
5879 L4_MABX_B.SFunction1_o7_b = (real_T)
5880 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x301].deltatime;
5881 CAN_Msg = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x301].data;
5882
5883 /* Decode CAN message */
5884 {
5885 {
5886 rtican_Signal_t CAN_Sgn;
5887
5888 /* ...... "PX2_LanePosEstAngle" (0|16, standard signal, signed int, little endian) */
5889 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5890 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
5891 CAN_Sgn.SignedSgn &= 0x0000FFFF;
5892 if (CAN_Sgn.SignedSgn >> 15) {
5893 CAN_Sgn.SignedSgn |= 0xFFFF0000;
5894 }
5895
5896 L4_MABX_B.SFunction1_o1_g3 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
5897
5898 /* ...... "PX2_LanePosEstNumPoints" (16|8, standard signal, unsigned int, little endian) */
5899 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
5900 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5901 L4_MABX_B.SFunction1_o2_lf = ((real_T) CAN_Sgn.UnsignedSgn);
5902
5903 /* ...... "PX2_LanePosEstPosition" (24|16, standard signal, signed int, little endian) */
5904 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
5905 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
5906 CAN_Sgn.SignedSgn &= 0x0000FFFF;
5907 if (CAN_Sgn.SignedSgn >> 15) {
5908 CAN_Sgn.SignedSgn |= 0xFFFF0000;
5909 }
5910
5911 L4_MABX_B.SFunction1_o3_gp = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn) );
5912
5913 /* ...... "PX2_LanePosEstNumLanes" (40|4, standard signal, unsigned int, little endian) */
5914 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
5915 CAN_Sgn.UnsignedSgn &= 0x0000000F;
5916 L4_MABX_B.SFunction1_o4_hg2 = ((real_T) CAN_Sgn.UnsignedSgn);
5917 }
5918 }
5919 } else {
5920 /* set RX status to 0 because no new message has arrived */
5921 L4_MABX_B.SFunction1_o5_eu = 0.0;
5922 }
5923 }
5924 }
5925
5926 /* End of Outputs for SubSystem: '<S607>/PX2_LanePosEst' */
5927
5928 /* Outputs for Enabled SubSystem: '<S614>/Bendix_Prop2C2_Status_30' incorporates:
5929 * EnablePort: '<S615>/Enable'
5930 */
5931 /* Constant: '<S435>/Constant' */
5932 if (L4_MABX_P.Constant_Value_hj > 0.0) {
5933 /* S-Function (rti_commonblock): '<S615>/S-Function1' */
5934 /* This comment workarounds a code generation problem */
5935
5936 /* dSPACE RTICAN RX Message Block: "Prop2C2_Status_30" Id:419382064 */
5937 {
5938 UInt32 *CAN_Msg;
5939 static dsfloat time_old = 0.0;
5940
5941 /* Read status and timestamp info (previous message) */
5942 if (can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF4330].timestamp !=
5943 time_old) {
5944 /* ... save timestamp info for the calculation of the RX status
5945 during the consecutive sample hit*/
5946 time_old = can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF4330].
5947 timestamp;
5948
5949 /* ... set the processed flag to one */
5950 L4_MABX_B.SFunction1_o11_f = 1.0;
5951 L4_MABX_B.SFunction1_o12_f = (real_T)
5952 can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF4330].timestamp;
5953 L4_MABX_B.SFunction1_o13_m = (real_T)
5954 can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF4330].deltatime;
5955 CAN_Msg = can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF4330].data;
5956
5957 /* Decode CAN message */
5958 {
5959 {
5960 rtican_Signal_t CAN_Sgn;
5961
5962 /* ...... "PressureP4" (0|8, standard signal, unsigned int, little endian) */
5963 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5964 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5965 L4_MABX_B.SFunction1_o1_i4 = 80 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
5966
5967 /* ...... "PressureP1" (8|8, standard signal, unsigned int, little endian) */
5968 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
5969 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5970 L4_MABX_B.SFunction1_o2_j5 = 80 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
5971
5972 /* ...... "PressureP21" (16|8, standard signal, unsigned int, little endian) */
5973 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
5974 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5975 L4_MABX_B.SFunction1_o3_fk = 80 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
5976
5977 /* ...... "PressureP22" (24|8, standard signal, unsigned int, little endian) */
5978 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
5979 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5980 L4_MABX_B.SFunction1_o4_as = 80 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
5981
5982 /* ...... "PressureP42" (32|8, standard signal, unsigned int, little endian) */
5983 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
5984 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5985 L4_MABX_B.SFunction1_o5_l = 80 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
5986
5987 /* ...... "XPR1ControlStatus" (40|4, standard signal, unsigned int, little endian) */
5988 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
5989 CAN_Sgn.UnsignedSgn &= 0x0000000F;
5990 L4_MABX_B.SFunction1_o6_h = ((real_T) CAN_Sgn.UnsignedSgn);
5991
5992 /* ...... "XPR2ControlStatus" (44|4, standard signal, unsigned int, little endian) */
5993 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
5994 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
5995 CAN_Sgn.UnsignedSgn &= 0x0000000F;
5996 L4_MABX_B.SFunction1_o7_p = ((real_T) CAN_Sgn.UnsignedSgn);
5997
5998 /* ...... "XPR3ControlStatus" (48|4, standard signal, unsigned int, little endian) */
5999 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
6000 CAN_Sgn.UnsignedSgn &= 0x0000000F;
6001 L4_MABX_B.SFunction1_o8_pt = ((real_T) CAN_Sgn.UnsignedSgn);
6002
6003 /* ...... "XPRErrorState" (56|2, standard signal, unsigned int, little endian) */
6004 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
6005 CAN_Sgn.UnsignedSgn &= 0x00000003;
6006 L4_MABX_B.SFunction1_o9_m5 = ((real_T) CAN_Sgn.UnsignedSgn);
6007
6008 /* ...... "XPRControlMode" (58|4, standard signal, unsigned int, little endian) */
6009 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
6010 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
6011 CAN_Sgn.UnsignedSgn &= 0x0000000F;
6012 L4_MABX_B.SFunction1_o10_g = ((real_T) CAN_Sgn.UnsignedSgn);
6013 }
6014 }
6015 } else {
6016 /* set RX status to 0 because no new message has arrived */
6017 L4_MABX_B.SFunction1_o11_f = 0.0;
6018 }
6019 }
6020 }
6021
6022 /* End of Constant: '<S435>/Constant' */
6023 /* End of Outputs for SubSystem: '<S614>/Bendix_Prop2C2_Status_30' */
6024
6025 /* DataTypeConversion: '<S614>/Data Type Conversion15' */
6026 PositionFinalLimited = L4_MABX_B.SFunction1_o10_g;
6027 if (PositionFinalLimited < 256.0) {
6028 if (PositionFinalLimited >= 0.0) {
6029 starting_index = (uint8_T)PositionFinalLimited;
6030 } else {
6031 starting_index = 0U;
6032 }
6033 } else {
6034 starting_index = MAX_uint8_T;
6035 }
6036
6037 L4_MABX_B.DataTypeConversion15_l = starting_index;
6038
6039 /* End of DataTypeConversion: '<S614>/Data Type Conversion15' */
6040
6041 /* DataTypeConversion: '<S614>/Data Type Conversion5' */
6042 L4_MABX_B.XPRControlMode = (ENUM_XPR_CONTROL_MODE_T)
6043 safe_cast_to_ENUM_XPR_CONTROL_M(L4_MABX_B.DataTypeConversion15_l);
6044
6045 /* DataTypeConversion: '<S614>/Data Type Conversion4' */
6046 PositionFinalLimited = L4_MABX_B.SFunction1_o9_m5;
6047 if (PositionFinalLimited < 256.0) {
6048 if (PositionFinalLimited >= 0.0) {
6049 starting_index = (uint8_T)PositionFinalLimited;
6050 } else {
6051 starting_index = 0U;
6052 }
6053 } else {
6054 starting_index = MAX_uint8_T;
6055 }
6056
6057 L4_MABX_B.DataTypeConversion4_a = starting_index;
6058
6059 /* End of DataTypeConversion: '<S614>/Data Type Conversion4' */
6060
6061 /* DataTypeConversion: '<S614>/Data Type Conversion14' */
6062 L4_MABX_B.XPRErrorState = (ENUM_XPR_ERROR_STATE_T)
6063 safe_cast_to_ENUM_XPR_ERROR_STA(L4_MABX_B.DataTypeConversion4_a);
6064
6065 /* DataTypeConversion: '<S614>/Data Type Conversion7' */
6066 L4_MABX_B.PressureP1 = L4_MABX_B.SFunction1_o2_j5;
6067
6068 /* DataTypeConversion: '<S614>/Data Type Conversion6' */
6069 L4_MABX_B.PressureP4 = L4_MABX_B.SFunction1_o1_i4;
6070
6071 /* DataTypeConversion: '<S614>/Data Type Conversion11' */
6072 L4_MABX_B.PressureP21 = L4_MABX_B.SFunction1_o3_fk;
6073
6074 /* DataTypeConversion: '<S614>/Data Type Conversion12' */
6075 L4_MABX_B.PressureP22 = L4_MABX_B.SFunction1_o4_as;
6076
6077 /* DataTypeConversion: '<S614>/Data Type Conversion13' */
6078 L4_MABX_B.PressureP42 = L4_MABX_B.SFunction1_o5_l;
6079
6080 /* RelationalOperator: '<S646>/Operator' incorporates:
6081 * Constant: '<S452>/Constant3'
6082 * Constant: '<S644>/Constant1'
6083 */
6084 L4_MABX_B.Operator_md = (PROPB_REAX_CHANNEL_APV ==
6085 L4_MABX_P.Constant1_Value_jc);
6086
6087 /* Outputs for Enabled SubSystem: '<S564>/PropB_REAX_2_13' incorporates:
6088 * EnablePort: '<S566>/Enable'
6089 */
6090 if (L4_MABX_B.Operator_md) {
6091 /* S-Function (rti_commonblock): '<S566>/S-Function1' */
6092 /* This comment workarounds a code generation problem */
6093
6094 /* dSPACE RTICAN RX Message Block: "PropB_REAX_2_13" Id:419426323 */
6095 {
6096 UInt32 *CAN_Msg;
6097 static dsfloat time_old = 0.0;
6098
6099 /* Read status and timestamp info (previous message) */
6100 if (can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF013].timestamp !=
6101 time_old) {
6102 /* ... save timestamp info for the calculation of the RX status
6103 during the consecutive sample hit*/
6104 time_old = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF013].
6105 timestamp;
6106
6107 /* ... set the processed flag to one */
6108 L4_MABX_B.SFunction1_o3_mp = 1.0;
6109 L4_MABX_B.SFunction1_o4_mo = (real_T)
6110 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF013].timestamp;
6111 L4_MABX_B.SFunction1_o5_cb = (real_T)
6112 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF013].deltatime;
6113 CAN_Msg = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF013].data;
6114
6115 /* Decode CAN message */
6116 {
6117 {
6118 rtican_Signal_t CAN_Sgn;
6119
6120 /* ...... "PropB_REAX_2_ActualHandwheelPos" (0|32, standard signal, signed int, little endian) */
6121 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
6122 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
6123 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[2];
6124 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[3];
6125 L4_MABX_B.SFunction1_o1_ck = 0.0439453125 * ( ((real_T)
6126 CAN_Sgn.SignedSgn) );
6127
6128 /* ...... "PropB_REAX_2_EchoedStrWhlPos" (32|32, standard signal, signed int, little endian) */
6129 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
6130 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
6131 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[6];
6132 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[7];
6133 L4_MABX_B.SFunction1_o2_dzy = 0.0439453125 * ( ((real_T)
6134 CAN_Sgn.SignedSgn) );
6135 }
6136 }
6137 } else {
6138 /* set RX status to 0 because no new message has arrived */
6139 L4_MABX_B.SFunction1_o3_mp = 0.0;
6140 }
6141 }
6142 }
6143
6144 /* End of Outputs for SubSystem: '<S564>/PropB_REAX_2_13' */
6145
6146 /* RelationalOperator: '<S645>/Operator' incorporates:
6147 * Constant: '<S452>/Constant3'
6148 * Constant: '<S644>/Constant'
6149 */
6150 L4_MABX_B.Operator_pq = (PROPB_REAX_CHANNEL_APV == L4_MABX_P.Constant_Value_hf);
6151
6152 /* RelationalOperator: '<S647>/Operator' incorporates:
6153 * Constant: '<S452>/Constant3'
6154 * Constant: '<S644>/Constant2'
6155 */
6156 L4_MABX_B.Operator_fs = (PROPB_REAX_CHANNEL_APV ==
6157 L4_MABX_P.Constant2_Value_ar);
6158
6159 /* RelationalOperator: '<S648>/Operator' incorporates:
6160 * Constant: '<S452>/Constant3'
6161 * Constant: '<S644>/Constant3'
6162 */
6163 L4_MABX_B.Operator_kn = (PROPB_REAX_CHANNEL_APV ==
6164 L4_MABX_P.Constant3_Value_ng);
6165
6166 /* RelationalOperator: '<S649>/Operator' incorporates:
6167 * Constant: '<S452>/Constant3'
6168 * Constant: '<S644>/Constant4'
6169 */
6170 L4_MABX_B.Operator_m3 = (PROPB_REAX_CHANNEL_APV ==
6171 L4_MABX_P.Constant4_Value_l0);
6172
6173 /* RelationalOperator: '<S650>/Operator' incorporates:
6174 * Constant: '<S452>/Constant3'
6175 * Constant: '<S644>/Constant5'
6176 */
6177 L4_MABX_B.Operator_gd = (PROPB_REAX_CHANNEL_APV == L4_MABX_P.Constant5_Value_e);
6178
6179 /* Logic: '<S452>/OR' */
6180 L4_MABX_B.EnablePropB_ReAX_CAN6 = (L4_MABX_B.Operator_pq ||
6181 L4_MABX_B.Operator_fs || L4_MABX_B.Operator_kn || L4_MABX_B.Operator_m3 ||
6182 L4_MABX_B.Operator_gd);
6183
6184 /* Outputs for Enabled SubSystem: '<S565>/PropB_REAX_2_13' incorporates:
6185 * EnablePort: '<S567>/Enable'
6186 */
6187 if (L4_MABX_B.EnablePropB_ReAX_CAN6) {
6188 /* S-Function (rti_commonblock): '<S567>/S-Function1' */
6189 /* This comment workarounds a code generation problem */
6190
6191 /* dSPACE RTICAN RX Message Block: "PropB_REAX_2_13" Id:419426323 */
6192 {
6193 UInt32 *CAN_Msg;
6194 static dsfloat time_old = 0.0;
6195
6196 /* Read status and timestamp info (previous message) */
6197 if (can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x18FFF013].timestamp !=
6198 time_old) {
6199 /* ... save timestamp info for the calculation of the RX status
6200 during the consecutive sample hit*/
6201 time_old = can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x18FFF013].
6202 timestamp;
6203
6204 /* ... set the processed flag to one */
6205 L4_MABX_B.SFunction1_o3_dx = 1.0;
6206 L4_MABX_B.SFunction1_o4_dw = (real_T)
6207 can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x18FFF013].timestamp;
6208 L4_MABX_B.SFunction1_o5_m = (real_T)
6209 can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x18FFF013].deltatime;
6210 CAN_Msg = can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x18FFF013].data;
6211
6212 /* Decode CAN message */
6213 {
6214 {
6215 rtican_Signal_t CAN_Sgn;
6216
6217 /* ...... "PropB_REAX_2_ActualHandwheelPos" (0|32, standard signal, signed int, little endian) */
6218 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
6219 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
6220 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[2];
6221 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[3];
6222 L4_MABX_B.SFunction1_o1_pd = 0.0439453125 * ( ((real_T)
6223 CAN_Sgn.SignedSgn) );
6224
6225 /* ...... "PropB_REAX_2_EchoedStrWhlPos" (32|32, standard signal, signed int, little endian) */
6226 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
6227 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
6228 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[6];
6229 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[7];
6230 L4_MABX_B.SFunction1_o2_ns = 0.0439453125 * ( ((real_T)
6231 CAN_Sgn.SignedSgn) );
6232 }
6233 }
6234 } else {
6235 /* set RX status to 0 because no new message has arrived */
6236 L4_MABX_B.SFunction1_o3_dx = 0.0;
6237 }
6238 }
6239 }
6240
6241 /* End of Outputs for SubSystem: '<S565>/PropB_REAX_2_13' */
6242
6243 /* Switch: '<S429>/Switch' */
6244 if (L4_MABX_B.Operator_md) {
6245 ReAX_ActualHandwheelPos = L4_MABX_B.SFunction1_o1_ck;
6246 } else {
6247 ReAX_ActualHandwheelPos = L4_MABX_B.SFunction1_o1_pd;
6248 }
6249
6250 /* S-Function (dsa_tcpip_setup_sfcn): '<S386>/dsa_tcpip_setup' */
6251
6252 /* Level2 S-Function Block: '<S386>/dsa_tcpip_setup' (dsa_tcpip_setup_sfcn) */
6253 {
6254 SimStruct *rts = L4_MABX_M->childSfunctions[3];
6255 ssSetOutputPortSignal(rts, 0, &EthernetLinkStatus);
6256 sfcnOutputs(rts,0);
6257 }
6258
6259 /* Constant: '<S3>/Enable' */
6260 L4_MABX_B.Enable = L4_MABX_P.Enable_Value;
6261
6262 /* DiscretePulseGenerator: '<S385>/Heartbeat' */
6263 L4_MABX_B.Heartbeat = (L4_MABX_DW.clockTickCounter < L4_MABX_P.Heartbeat_Duty)
6264 && (L4_MABX_DW.clockTickCounter >= 0) ? L4_MABX_P.Heartbeat_Amp : 0.0;
6265 if (L4_MABX_DW.clockTickCounter >= L4_MABX_P.Heartbeat_Period - 1.0) {
6266 L4_MABX_DW.clockTickCounter = 0;
6267 } else {
6268 L4_MABX_DW.clockTickCounter++;
6269 }
6270
6271 /* End of DiscretePulseGenerator: '<S385>/Heartbeat' */
6272
6273 /* DataTypeConversion: '<S385>/Cast To Boolean' */
6274 L4_MABX_B.Heartbeat_l = (L4_MABX_B.Heartbeat != 0.0);
6275
6276 /* UnitDelay: '<S3>/Unit_Delay' */
6277 L4_MABX_B.EStop_a = L4_MABX_DW.Unit_Delay_79_DSTATE;
6278 L4_MABX_B.EnableSW = L4_MABX_DW.Unit_Delay_80_DSTATE;
6279 L4_MABX_B.EngagePB_j = L4_MABX_DW.Unit_Delay_81_DSTATE;
6280 L4_MABX_B.AutonomousEnabled_k = L4_MABX_DW.Unit_Delay_45_DSTATE;
6281 L4_MABX_B.MABX_Mode_f = L4_MABX_DW.Unit_Delay_47_DSTATE;
6282
6283 /* BusCreator: '<S385>/Bus Creator' */
6284 L4_MABX_B.BusCreator.Heartbeat = L4_MABX_B.Heartbeat_l;
6285 L4_MABX_B.BusCreator.EStop = L4_MABX_B.EStop_a;
6286 L4_MABX_B.BusCreator.EnableSW = L4_MABX_B.EnableSW;
6287 L4_MABX_B.BusCreator.EngagePB = L4_MABX_B.EngagePB_j;
6288 L4_MABX_B.BusCreator.AutonomousEnabled = L4_MABX_B.AutonomousEnabled_k;
6289 L4_MABX_B.BusCreator.MABX_Mode = L4_MABX_B.MABX_Mode_f;
6290
6291 /* S-Function (dsa_gen_tx_RTMapsEncode_sfun): '<S393>/Encoder' */
6292 Update_Tx_RTMapsEncode((RTMapsTX*)&L4_MABX_B.BusCreator,
6293 &L4_MABX_B.Encoder_o1[0], &L4_MABX_B.Encoder_o2);
6294
6295 /* S-Function (dsa_tcpip_udp_sfcn): '<S387>/TCPIP_Com' */
6296
6297 /* Level2 S-Function Block: '<S387>/TCPIP_Com' (dsa_tcpip_udp_sfcn) */
6298 {
6299 SimStruct *rts = L4_MABX_M->childSfunctions[4];
6300 sfcnOutputs(rts,0);
6301 }
6302
6303 /* DataTypeConversion: '<S384>/Data Type Conversion' */
6304 L4_MABX_B.DataTypeConversion_f = L4_MABX_B.TCPIP_Com_o2;
6305
6306 /* S-Function (dsa_gen_rx_RTMapsDecode_sfun): '<S390>/Decoder' */
6307 Update_Rx_RTMapsDecode((uint8_T*)&L4_MABX_B.TCPIP_Com_o3[0],
6308 L4_MABX_B.DataTypeConversion_f, L4_MABX_B.TCPIP_Com_o1[2],
6309 &L4_MABX_B.Decoder_o1, &L4_MABX_B.Decoder_o2, &L4_MABX_B.Decoder_o3);
6310
6311 /* RelationalOperator: '<S392>/Compare' incorporates:
6312 * Constant: '<S392>/Constant'
6313 */
6314 L4_MABX_B.Compare_a = ((int32_T)L4_MABX_B.Decoder_o1.Heartbeat > (int32_T)
6315 L4_MABX_P.Constant_Value_ilu);
6316
6317 /* UnitDelay: '<S391>/Delay Input1' */
6318 L4_MABX_B.Uk1_i = L4_MABX_DW.DelayInput1_DSTATE_p;
6319
6320 /* RelationalOperator: '<S391>/FixPt Relational Operator' */
6321 L4_MABX_B.FixPtRelationalOperator = ((int32_T)L4_MABX_B.Compare_a > (int32_T)
6322 L4_MABX_B.Uk1_i);
6323
6324 /* UnitDelay: '<S389>/Unit Delay' */
6325 L4_MABX_B.UnitDelay = L4_MABX_DW.UnitDelay_DSTATE;
6326
6327 /* Switch: '<S389>/Switch' incorporates:
6328 * Constant: '<S389>/Constant1'
6329 */
6330 if (L4_MABX_B.FixPtRelationalOperator) {
6331 L4_MABX_B.Count = L4_MABX_P.Constant1_Value_e;
6332 } else {
6333 /* Sum: '<S389>/Sum' incorporates:
6334 * Constant: '<S389>/Constant'
6335 */
6336 L4_MABX_B.Sum = L4_MABX_P.Constant_Value_hp + L4_MABX_B.UnitDelay;
6337 L4_MABX_B.Count = L4_MABX_B.Sum;
6338 }
6339
6340 /* End of Switch: '<S389>/Switch' */
6341
6342 /* Switch: '<S389>/Switch1' incorporates:
6343 * Constant: '<S389>/Constant2'
6344 * Constant: '<S389>/Constant3'
6345 */
6346 if (L4_MABX_B.Count > L4_MABX_P.Switch1_Threshold) {
6347 L4_MABX_B.Switch1_om = L4_MABX_P.Constant2_Value_c;
6348 } else {
6349 L4_MABX_B.Switch1_om = L4_MABX_P.Constant3_Value_a;
6350 }
6351
6352 /* End of Switch: '<S389>/Switch1' */
6353
6354 /* Logic: '<S384>/AND' */
6355 RTMapsOk = ((EthernetLinkStatus != 0.0) && L4_MABX_B.Switch1_om);
6356
6357 /* Switch: '<S384>/Switch9' incorporates:
6358 * Constant: '<S384>/Failure'
6359 * Constant: '<S384>/No Data'
6360 * Switch: '<S384>/Switch'
6361 * Switch: '<S384>/Switch1'
6362 * Switch: '<S384>/Switch3'
6363 * Switch: '<S384>/Switch4'
6364 */
6365 if (RTMapsOk) {
6366 /* Gain: '<S384>/for_logging7' */
6367 L4_MABX_B.SupervisorMode_b = (int8_T)(((uint32_T)L4_MABX_P.for_logging7_Gain
6368 * L4_MABX_B.Decoder_o1.SupervisorMode) >> 7);
6369 SupervisorMode = (uint8_T)L4_MABX_B.SupervisorMode_b;
6370
6371 /* Gain: '<S384>/for_logging' */
6372 L4_MABX_B.for_logging = L4_MABX_P.for_logging_Gain *
6373 L4_MABX_B.Decoder_o1.CurrentAzimuth;
6374 CurrentAzimuth_rad = L4_MABX_B.for_logging;
6375
6376 /* Gain: '<S384>/for_logging1' */
6377 L4_MABX_B.for_logging1 = L4_MABX_P.for_logging1_Gain *
6378 L4_MABX_B.Decoder_o1.TargetAzimuth;
6379 TargetAzimuth_rad = L4_MABX_B.for_logging1;
6380
6381 /* Gain: '<S384>/m//s_to_km//h_2' */
6382 L4_MABX_B.ms_to_kmh_2 = L4_MABX_P.ms_to_kmh_2_Gain *
6383 L4_MABX_B.Decoder_o1.TargetVelocity;
6384 TargetVelocity_kph = L4_MABX_B.ms_to_kmh_2;
6385
6386 /* Gain: '<S384>/for_logging2' */
6387 L4_MABX_B.for_logging2 = L4_MABX_P.for_logging2_Gain *
6388 L4_MABX_B.Decoder_o1.Curvature;
6389 Curvature = L4_MABX_B.for_logging2;
6390 } else {
6391 SupervisorMode = L4_MABX_P.Failure_Value_g;
6392 CurrentAzimuth_rad = L4_MABX_P.NoData_Value;
6393 TargetAzimuth_rad = L4_MABX_P.NoData_Value;
6394 TargetVelocity_kph = L4_MABX_P.NoData_Value;
6395 Curvature = L4_MABX_P.NoData_Value;
6396 }
6397
6398 /* End of Switch: '<S384>/Switch9' */
6399
6400 /* Outputs for Atomic SubSystem: '<S65>/Task_10ms' */
6401 /* RelationalOperator: '<S95>/Operator' incorporates:
6402 * Constant: '<S76>/Supervisor_Autonomous_Mode'
6403 */
6404 L4_MABX_B.Operator_ns = (L4_MABX_P.Supervisor_Autonomous_Mode_Valu ==
6405 SupervisorMode);
6406
6407 /* Logic: '<S76>/AND' */
6408 L4_MABX_B.AND_l = (L4_MABX_B.Operator_ns && RTMapsOk && EnableSw && EStop);
6409
6410 /* MultiPortSwitch: '<S76>/Autonomous Mode Switch1' incorporates:
6411 * Constant: '<S76>/AUTONOMOUS_MODE_SELECTOR_APV'
6412 * Constant: '<S76>/GhostMode1'
6413 */
6414 if (AUTONOMOUS_MODE_SELECTOR_APV == ENUM_AUTONOMOUS_MODE_T_AUTO) {
6415 AutonomousEnabled = L4_MABX_B.AND_l;
6416 } else {
6417 AutonomousEnabled = (L4_MABX_P.GhostMode1_Value != 0);
6418 }
6419
6420 /* End of MultiPortSwitch: '<S76>/Autonomous Mode Switch1' */
6421
6422 /* Logic: '<S83>/Logical Operator' */
6423 L4_MABX_B.LogicalOperator_d = !AutonomousEnabled;
6424
6425 /* Outputs for Atomic SubSystem: '<S83>/If_Then_Else' */
6426
6427 /* Constant: '<S83>/APTC_PEDAL_POSITION_OVR_APV' incorporates:
6428 * Constant: '<S83>/APTC_DESIRED_PEDAL_POSITION_APV'
6429 */
6430 L4_MABX_If_Then_Else(L4_MABX_P.APTC_PEDAL_POSITION_OVR_APV_Val,
6431 L4_MABX_P.APTC_DESIRED_PEDAL_POSITION_APV,
6432 Pedal_pwm_position, &L4_MABX_B.If_Then_Else_o);
6433
6434 /* End of Outputs for SubSystem: '<S83>/If_Then_Else' */
6435
6436 /* DataTypeConversion: '<S83>/Data Type Conversion1' */
6437 L4_MABX_B.DataTypeConversion1_ht = L4_MABX_B.SFunction1_o5_lc;
6438
6439 /* Lookup_n-D: '<S83>/2-D Lookup Table' */
6440 L4_MABX_B.uDLookupTable = look2_binlcapw(L4_MABX_B.If_Then_Else_o.Switch,
6441 L4_MABX_B.DataTypeConversion1_ht, APTC_TRQ_PED_TRQ_POS_STEP_MPV,
6442 APTC_TRQ_PED_TRQ_ESPD_STEP_MPV, APTC_TRQ_PED_TRQ_DATA_MPV,
6443 L4_MABX_P.uDLookupTable_maxIndex, 8U);
6444
6445 /* DataTypeConversion: '<S77>/Data Type Conversion5' */
6446 L4_MABX_B.DataTypeConversion5_o = L4_MABX_B.SFunction1_o1_os;
6447
6448 /* RateTransition: '<S81>/TmpRTBAtSignal Conversion1Inport1' */
6449 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
6450 L4_MABX_B.distanceSpdTarget_e = L4_MABX_DW.TmpRTBAtSignalConversion1Inport;
6451 }
6452
6453 /* MultiPortSwitch: '<S81>/Multiport Switch' incorporates:
6454 * Constant: '<S81>/LONG_SPEED_SRC_SELECTOR_APV'
6455 */
6456 switch (LONG_SPEED_SRC_SELECTOR_APV) {
6457 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_GPS_PATH:
6458 /* SignalConversion: '<S81>/Signal Conversion1' */
6459 L4_MABX_B.Vehicle_speed_target_g = L4_MABX_B.distanceSpdTarget_e;
6460 L4_MABX_B.Vehicle_speed_target_o = L4_MABX_B.Vehicle_speed_target_g;
6461 break;
6462
6463 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_OVERRIDE:
6464 /* SignalConversion: '<S81>/Signal Conversion4' incorporates:
6465 * Constant: '<S81>/VSPD_TARGET_KPH_APV'
6466 */
6467 L4_MABX_B.Vehicle_speed_target_o5 = VSPD_TARGET_KPH_APV;
6468 L4_MABX_B.Vehicle_speed_target_o = L4_MABX_B.Vehicle_speed_target_o5;
6469 break;
6470
6471 default:
6472 /* SignalConversion: '<S81>/Signal Conversion9' */
6473 L4_MABX_B.Vehicle_speed_target_k = TargetVelocity_kph;
6474 L4_MABX_B.Vehicle_speed_target_o = L4_MABX_B.Vehicle_speed_target_k;
6475 break;
6476 }
6477
6478 /* SignalConversion: '<S81>/Signal Conversion16' */
6479 L4_MABX_B.VSPD_TARGET_KPH_APV_g = L4_MABX_B.Vehicle_speed_target_o;
6480
6481 /* Saturate: '<S81>/Saturation9' incorporates:
6482 * Constant: '<S81>/VSPD_HYST_KPH_APV'
6483 */
6484 DeltaTime = L4_MABX_P.VSPD_HYST_KPH_APV_Value;
6485 Time56 = L4_MABX_P.Saturation9_LowerSat;
6486 PositionFinalLimited = L4_MABX_P.Saturation9_UpperSat;
6487 if (DeltaTime > PositionFinalLimited) {
6488 L4_MABX_B.VSPD_HYST_KPH_APV_f = PositionFinalLimited;
6489 } else if (DeltaTime < Time56) {
6490 L4_MABX_B.VSPD_HYST_KPH_APV_f = Time56;
6491 } else {
6492 L4_MABX_B.VSPD_HYST_KPH_APV_f = DeltaTime;
6493 }
6494
6495 /* End of Saturate: '<S81>/Saturation9' */
6496
6497 /* Sum: '<S103>/Add' */
6498 L4_MABX_B.Add_k = L4_MABX_B.VSPD_TARGET_KPH_APV_g +
6499 L4_MABX_B.VSPD_HYST_KPH_APV_f;
6500
6501 /* RelationalOperator: '<S103>/Relational Operator' */
6502 L4_MABX_B.f_vspd_geq_than_target_plus_hys = (L4_MABX_B.DataTypeConversion5_o >=
6503 L4_MABX_B.Add_k);
6504
6505 /* Saturate: '<S81>/Saturation1' incorporates:
6506 * Constant: '<S81>/VSPD_BRAKE_STOP_THRESH_KPH_APV'
6507 */
6508 DeltaTime = L4_MABX_P.VSPD_BRAKE_STOP_THRESH_KPH_APV_;
6509 Time56 = L4_MABX_P.Saturation1_LowerSat;
6510 PositionFinalLimited = L4_MABX_P.Saturation1_UpperSat;
6511 if (DeltaTime > PositionFinalLimited) {
6512 L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_AP_b = PositionFinalLimited;
6513 } else if (DeltaTime < Time56) {
6514 L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_AP_b = Time56;
6515 } else {
6516 L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_AP_b = DeltaTime;
6517 }
6518
6519 /* End of Saturate: '<S81>/Saturation1' */
6520
6521 /* RelationalOperator: '<S103>/Relational Operator1' */
6522 L4_MABX_B.f_target_is_stop_thresh = (L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_AP_b
6523 == L4_MABX_B.VSPD_TARGET_KPH_APV_g);
6524
6525 /* RelationalOperator: '<S199>/Compare' incorporates:
6526 * Constant: '<S199>/Constant'
6527 */
6528 L4_MABX_B.Compare_eu = (L4_MABX_B.VSPD_TARGET_KPH_APV_g ==
6529 L4_MABX_P.Constant_Value_k);
6530
6531 /* RelationalOperator: '<S103>/Relational Operator2' */
6532 L4_MABX_B.RelationalOperator2_p = (L4_MABX_B.VSPD_HYST_KPH_APV_f >=
6533 L4_MABX_B.VSPD_TARGET_KPH_APV_g);
6534
6535 /* RelationalOperator: '<S103>/Relational Operator3' */
6536 L4_MABX_B.RelationalOperator3 = (L4_MABX_B.VSPD_HYST_KPH_APV_f >=
6537 L4_MABX_B.DataTypeConversion5_o);
6538
6539 /* Logic: '<S103>/Logical Operator' */
6540 L4_MABX_B.f_vspd_leq_than_hyst_and_target = (L4_MABX_B.RelationalOperator2_p &&
6541 L4_MABX_B.RelationalOperator3);
6542
6543 /* Logic: '<S103>/Logical Operator1' */
6544 L4_MABX_B.LogicalOperator1_m = (L4_MABX_B.f_vspd_geq_than_target_plus_hys ||
6545 L4_MABX_B.f_target_is_stop_thresh || L4_MABX_B.Compare_eu ||
6546 L4_MABX_B.f_vspd_leq_than_hyst_and_target);
6547
6548 /* DataTypeConversion: '<S77>/Data Type Conversion4' */
6549 L4_MABX_B.DataTypeConversion4_d = AutonomousEnabled;
6550
6551 /* Logic: '<S103>/Logical Operator2' */
6552 L4_MABX_B.F_Brake_control_active = (L4_MABX_B.LogicalOperator1_m &&
6553 L4_MABX_B.DataTypeConversion4_d);
6554
6555 /* DataTypeConversion: '<S79>/Data Type Conversion4' */
6556 L4_MABX_B.DataTypeConversion4_i = L4_MABX_B.SFunction1_o1_os;
6557
6558 /* DataTypeConversion: '<S77>/Data Type Conversion1' */
6559 PositionFinalLimited = L4_MABX_B.SFunction1_o8_l;
6560 if (PositionFinalLimited < 256.0) {
6561 if (PositionFinalLimited >= 0.0) {
6562 starting_index = (uint8_T)PositionFinalLimited;
6563 } else {
6564 starting_index = 0U;
6565 }
6566 } else {
6567 starting_index = MAX_uint8_T;
6568 }
6569
6570 L4_MABX_B.DataTypeConversion1_ba = starting_index;
6571
6572 /* End of DataTypeConversion: '<S77>/Data Type Conversion1' */
6573
6574 /* DataTypeConversion: '<S77>/Data Type Conversion3' */
6575 L4_MABX_B.BrkPedArbBrakeSwitch_c = (ENUM_J1939_SWITCH_T)
6576 L4_MABX_B.DataTypeConversion1_ba;
6577
6578 /* DataTypeConversion: '<S203>/Data Type Conversion1' */
6579 L4_MABX_B.DataTypeConversion1_cy = L4_MABX_B.BrkPedArbBrakeSwitch_c;
6580
6581 /* RelationalOperator: '<S209>/Compare' incorporates:
6582 * Constant: '<S209>/Constant'
6583 */
6584 L4_MABX_B.Compare_e5 = (L4_MABX_B.DataTypeConversion1_cy ==
6585 L4_MABX_P.CompareToConstant2_const);
6586
6587 /* Logic: '<S203>/Logical Operator2' */
6588 L4_MABX_B.LogicalOperator2_n = !L4_MABX_B.Compare_e5;
6589
6590 /* DataTypeConversion: '<S203>/Data Type Conversion5' */
6591 PositionFinalLimited = floor(L4_MABX_B.SFunction1_o4_nr);
6592 if (rtIsNaN(PositionFinalLimited) || rtIsInf(PositionFinalLimited)) {
6593 PositionFinalLimited = 0.0;
6594 } else {
6595 PositionFinalLimited = fmod(PositionFinalLimited, 256.0);
6596 }
6597
6598 L4_MABX_B.DataTypeConversion5_pw = (uint8_T)(PositionFinalLimited < 0.0 ?
6599 (int32_T)(uint8_T)-(int8_T)(uint8_T)-PositionFinalLimited : (int32_T)
6600 (uint8_T)PositionFinalLimited);
6601
6602 /* End of DataTypeConversion: '<S203>/Data Type Conversion5' */
6603
6604 /* DataTypeConversion: '<S203>/Data Type Conversion3' */
6605 L4_MABX_B.DataTypeConversion3_l = (ENUM_J1939_SWITCH_T)
6606 L4_MABX_B.DataTypeConversion5_pw;
6607
6608 /* RelationalOperator: '<S207>/Compare' incorporates:
6609 * Constant: '<S207>/Constant'
6610 */
6611 L4_MABX_B.Compare_ih = (L4_MABX_B.DataTypeConversion3_l ==
6612 L4_MABX_P.CompareToConstant_const_e);
6613
6614 /* RelationalOperator: '<S208>/Compare' incorporates:
6615 * Constant: '<S208>/Constant'
6616 */
6617 L4_MABX_B.Compare_ex = (L4_MABX_B.DataTypeConversion3_l ==
6618 L4_MABX_P.CompareToConstant1_const_j);
6619
6620 /* Logic: '<S203>/BrakingActive2' */
6621 L4_MABX_B.BrakingActive2 = (L4_MABX_B.Compare_ih || L4_MABX_B.Compare_ex);
6622
6623 /* Logic: '<S203>/BrakingActive1' */
6624 L4_MABX_B.f_brake_sw_off = (L4_MABX_B.LogicalOperator2_n &&
6625 L4_MABX_B.BrakingActive2);
6626
6627 /* RelationalOperator: '<S210>/Compare' incorporates:
6628 * Constant: '<S210>/Constant'
6629 */
6630 L4_MABX_B.Compare_ay = (L4_MABX_B.SPN524_TransSelectedGear >
6631 L4_MABX_P.Constant_Value_il);
6632
6633 /* RelationalOperator: '<S211>/Compare' incorporates:
6634 * Constant: '<S211>/Constant'
6635 */
6636 L4_MABX_B.Compare_os = (L4_MABX_B.SPN523_TransCurrentGear >
6637 L4_MABX_P.Constant_Value_f);
6638
6639 /* Logic: '<S203>/Logical Operator1' */
6640 L4_MABX_B.f_brk_gov_inactive = !L4_MABX_B.F_Brake_control_active;
6641
6642 /* Logic: '<S203>/Logical Operator' */
6643 L4_MABX_B.LogicalOperator_ke = (AutonomousEnabled && L4_MABX_B.f_brake_sw_off &&
6644 L4_MABX_B.Compare_ay && L4_MABX_B.Compare_os && L4_MABX_B.f_brk_gov_inactive);
6645
6646 /* Outputs for Enabled SubSystem: '<S79>/Throttle_controller_gov' incorporates:
6647 * EnablePort: '<S206>/Enable'
6648 */
6649 if (L4_MABX_B.LogicalOperator_ke) {
6650 if (!L4_MABX_DW.Throttle_controller_gov_MODE) {
6651 /* InitializeConditions for UnitDelay: '<S214>/Unit_Delay1' */
6652 L4_MABX_DW.Unit_Delay1_DSTATE_p1 =
6653 L4_MABX_P.Unit_Delay1_InitialCondition_o;
6654
6655 /* InitializeConditions for UnitDelay: '<S214>/Unit_Delay' */
6656 L4_MABX_DW.Unit_Delay_DSTATE_lq = L4_MABX_P.Unit_Delay_InitialCondition_b2;
6657
6658 /* InitializeConditions for UnitDelay: '<S241>/Unit_Delay' */
6659 L4_MABX_DW.Unit_Delay_DSTATE_be = L4_MABX_P.Unit_Delay_InitialCondition_lj;
6660
6661 /* InitializeConditions for UnitDelay: '<S261>/Unit_Delay1' */
6662 L4_MABX_DW.Unit_Delay1_DSTATE_h = L4_MABX_P.Unit_Delay1_InitialCondition_a;
6663
6664 /* InitializeConditions for UnitDelay: '<S262>/Unit_Delay' */
6665 L4_MABX_DW.Unit_Delay_DSTATE_fi = L4_MABX_P.Unit_Delay_InitialCondition_bm;
6666
6667 /* InitializeConditions for UnitDelay: '<S266>/FixPt Unit Delay2' */
6668 L4_MABX_DW.FixPtUnitDelay2_DSTATE_gq =
6669 L4_MABX_P.FixPtUnitDelay2_InitialCondit_a;
6670
6671 /* InitializeConditions for UnitDelay: '<S266>/FixPt Unit Delay1' */
6672 L4_MABX_DW.FixPtUnitDelay1_DSTATE_a0 =
6673 L4_MABX_P.FixPtUnitDelay1_InitialCondit_o;
6674
6675 /* InitializeConditions for UnitDelay: '<S261>/Unit_Delay2' */
6676 L4_MABX_DW.Unit_Delay2_DSTATE_m = L4_MABX_P.Unit_Delay2_InitialCondition_j;
6677
6678 /* InitializeConditions for UnitDelay: '<S216>/Unit_Delay' */
6679 L4_MABX_DW.Unit_Delay_DSTATE_fz = L4_MABX_P.Unit_Delay_InitialCondition_kg;
6680 L4_MABX_DW.Throttle_controller_gov_MODE = true;
6681 }
6682
6683 /* DataTypeConversion: '<S213>/Data Type Conversion9' */
6684 L4_MABX_B.DataTypeConversion9_h = L4_MABX_B.SFunction1_o4_ms;
6685
6686 /* DataTypeConversion: '<S213>/Data Type Conversion1' */
6687 L4_MABX_B.DataTypeConversion1_iq = L4_MABX_B.SFunction1_o2_lx;
6688
6689 /* Sum: '<S213>/Add' */
6690 L4_MABX_B.Add_di = L4_MABX_B.DataTypeConversion9_h +
6691 L4_MABX_B.DataTypeConversion1_iq;
6692
6693 /* RelationalOperator: '<S218>/Relational Operator1' incorporates:
6694 * Constant: '<S213>/Constant1'
6695 */
6696 L4_MABX_B.RelationalOperator1_n = (L4_MABX_B.Add_di >=
6697 L4_MABX_P.Constant1_Value_c);
6698
6699 /* RelationalOperator: '<S218>/Relational Operator' incorporates:
6700 * Constant: '<S213>/Constant3'
6701 */
6702 L4_MABX_B.RelationalOperator_d3 = (L4_MABX_B.Add_di <=
6703 L4_MABX_P.Constant3_Value_d);
6704
6705 /* Outputs for Atomic SubSystem: '<S218>/If_Then_Else1' */
6706
6707 /* Constant: '<S213>/Constant3' */
6708 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_d3,
6709 L4_MABX_P.Constant3_Value_d, L4_MABX_B.Add_di,
6710 &L4_MABX_B.If_Then_Else1_h);
6711
6712 /* End of Outputs for SubSystem: '<S218>/If_Then_Else1' */
6713
6714 /* Outputs for Atomic SubSystem: '<S218>/If_Then_Else' */
6715
6716 /* Constant: '<S213>/Constant1' */
6717 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_n,
6718 L4_MABX_P.Constant1_Value_c,
6719 L4_MABX_B.If_Then_Else1_h.Switch,
6720 &L4_MABX_B.If_Then_Else_ct);
6721
6722 /* End of Outputs for SubSystem: '<S218>/If_Then_Else' */
6723
6724 /* DataTypeConversion: '<S213>/Data Type Conversion2' */
6725 L4_MABX_B.DataTypeConversion2_i = L4_MABX_B.SPN514_NominalFrictionPercentTo;
6726
6727 /* RelationalOperator: '<S219>/Relational Operator1' incorporates:
6728 * Constant: '<S213>/Constant2'
6729 */
6730 L4_MABX_B.RelationalOperator1_ch = (L4_MABX_B.DataTypeConversion2_i >=
6731 L4_MABX_P.Constant2_Value_b);
6732
6733 /* RelationalOperator: '<S219>/Relational Operator' incorporates:
6734 * Constant: '<S213>/Constant4'
6735 */
6736 L4_MABX_B.RelationalOperator_j = (L4_MABX_B.DataTypeConversion2_i <=
6737 L4_MABX_P.Constant4_Value);
6738
6739 /* Outputs for Atomic SubSystem: '<S219>/If_Then_Else1' */
6740
6741 /* Constant: '<S213>/Constant4' */
6742 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_j,
6743 L4_MABX_P.Constant4_Value,
6744 L4_MABX_B.DataTypeConversion2_i,
6745 &L4_MABX_B.If_Then_Else1_kg);
6746
6747 /* End of Outputs for SubSystem: '<S219>/If_Then_Else1' */
6748
6749 /* Outputs for Atomic SubSystem: '<S219>/If_Then_Else' */
6750
6751 /* Constant: '<S213>/Constant2' */
6752 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_ch,
6753 L4_MABX_P.Constant2_Value_b,
6754 L4_MABX_B.If_Then_Else1_kg.Switch,
6755 &L4_MABX_B.If_Then_Else_bo);
6756
6757 /* End of Outputs for SubSystem: '<S219>/If_Then_Else' */
6758
6759 /* DataTypeConversion: '<S213>/Data Type Conversion3' */
6760 L4_MABX_B.DataTypeConversion3_he = L4_MABX_B.SPN2978_EstEngParasiticLossesPe;
6761
6762 /* RelationalOperator: '<S220>/Relational Operator1' incorporates:
6763 * Constant: '<S213>/Constant5'
6764 */
6765 L4_MABX_B.RelationalOperator1_ln = (L4_MABX_B.DataTypeConversion3_he >=
6766 L4_MABX_P.Constant5_Value);
6767
6768 /* RelationalOperator: '<S220>/Relational Operator' incorporates:
6769 * Constant: '<S213>/Constant6'
6770 */
6771 L4_MABX_B.RelationalOperator_fd = (L4_MABX_B.DataTypeConversion3_he <=
6772 L4_MABX_P.Constant6_Value);
6773
6774 /* Outputs for Atomic SubSystem: '<S220>/If_Then_Else1' */
6775
6776 /* Constant: '<S213>/Constant6' */
6777 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_fd,
6778 L4_MABX_P.Constant6_Value,
6779 L4_MABX_B.DataTypeConversion3_he,
6780 &L4_MABX_B.If_Then_Else1_dz);
6781
6782 /* End of Outputs for SubSystem: '<S220>/If_Then_Else1' */
6783
6784 /* Outputs for Atomic SubSystem: '<S220>/If_Then_Else' */
6785
6786 /* Constant: '<S213>/Constant5' */
6787 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_ln,
6788 L4_MABX_P.Constant5_Value,
6789 L4_MABX_B.If_Then_Else1_dz.Switch,
6790 &L4_MABX_B.If_Then_Else_br);
6791
6792 /* End of Outputs for SubSystem: '<S220>/If_Then_Else' */
6793
6794 /* DataTypeConversion: '<S217>/Data Type Conversion5' */
6795 L4_MABX_B.DataTypeConversion5_i = L4_MABX_B.SFunction1_o1_le;
6796
6797 /* Lookup_n-D: '<S224>/1-D Lookup Table' */
6798 L4_MABX_B.Coeff_of_drag_Cd = look1_binlcapw(L4_MABX_B.DataTypeConversion5_i,
6799 L4_MABX_P.uDLookupTable_bp01Data, L4_MABX_P.uDLookupTable_tableData, 2U);
6800
6801 /* Gain: '<S224>/KPH_TO_M//S' */
6802 L4_MABX_B.KPH_TO_MS = L4_MABX_P.KPH_TO_MS_Gain *
6803 L4_MABX_B.DataTypeConversion5_i;
6804
6805 /* Math: '<S224>/Math Function'
6806 *
6807 * About '<S224>/Math Function':
6808 * Operator: magnitude^2
6809 */
6810 PositionFinalLimited = L4_MABX_B.KPH_TO_MS;
6811 L4_MABX_B.MathFunction = PositionFinalLimited * PositionFinalLimited;
6812
6813 /* DataTypeConversion: '<S217>/Data Type Conversion' */
6814 L4_MABX_B.DataTypeConversion_i = L4_MABX_B.SFunction1_o1_ms;
6815
6816 /* Gain: '<S224>/KPA_TO_PA' */
6817 L4_MABX_B.KPA_TO_PA = L4_MABX_P.KPA_TO_PA_Gain *
6818 L4_MABX_B.DataTypeConversion_i;
6819
6820 /* DataTypeConversion: '<S217>/Data Type Conversion4' */
6821 L4_MABX_B.DataTypeConversion4_b = L4_MABX_B.SFunction1_o3_ev;
6822
6823 /* Sum: '<S224>/Add' incorporates:
6824 * Constant: '<S224>/Constant'
6825 */
6826 L4_MABX_B.Add_o = L4_MABX_B.DataTypeConversion4_b + L4_MABX_P.Constant_Value;
6827
6828 /* Product: '<S224>/Product' incorporates:
6829 * Constant: '<S224>/Constant1'
6830 */
6831 L4_MABX_B.Product_n = L4_MABX_B.Add_o * L4_MABX_P.Constant1_Value_p;
6832
6833 /* Product: '<S224>/Divide' */
6834 L4_MABX_B.Air_density_kgm3 = L4_MABX_B.KPA_TO_PA / L4_MABX_B.Product_n;
6835
6836 /* Product: '<S224>/Product1' incorporates:
6837 * Constant: '<S217>/Veh_Frontal_Area_m^2'
6838 * Constant: '<S224>/Constant2'
6839 */
6840 L4_MABX_B.Aerodynamic_resistance_Ra = L4_MABX_B.Coeff_of_drag_Cd *
6841 L4_MABX_P.Veh_Frontal_Area_m2_Value * L4_MABX_B.MathFunction *
6842 L4_MABX_B.Air_density_kgm3 * L4_MABX_P.Constant2_Value_h;
6843
6844 /* DataTypeConversion: '<S217>/Data Type Conversion6' */
6845 L4_MABX_B.DataTypeConversion6_fq = L4_MABX_B.PitchAngleExRange;
6846
6847 /* Product: '<S225>/Divide' incorporates:
6848 * Constant: '<S225>/Constant2'
6849 * Constant: '<S225>/Constant3'
6850 */
6851 L4_MABX_B.grade_angle_radians = L4_MABX_B.DataTypeConversion6_fq *
6852 L4_MABX_P.Constant2_Value_bc / L4_MABX_P.Constant3_Value_n;
6853
6854 /* Trigonometry: '<S225>/Trigonometric Function' */
6855 L4_MABX_B.TrigonometricFunction_a = sin(L4_MABX_B.grade_angle_radians);
6856
6857 /* Product: '<S225>/Product1' incorporates:
6858 * Constant: '<S225>/Constant1'
6859 */
6860 L4_MABX_B.Gradient_resistance_Rg = L4_MABX_B.SPN1760_GrossCombinationVehicle
6861 * L4_MABX_B.TrigonometricFunction_a * L4_MABX_P.Constant1_Value_a;
6862
6863 /* Gain: '<S228>/KPA_TO_M//S' */
6864 L4_MABX_B.KPA_TO_MS = L4_MABX_P.KPA_TO_MS_Gain *
6865 L4_MABX_B.DataTypeConversion5_i;
6866
6867 /* Product: '<S228>/Divide2' incorporates:
6868 * Constant: '<S228>/Constant2'
6869 * Constant: '<S228>/Constant6'
6870 */
6871 L4_MABX_B.Divide2_c = L4_MABX_P.Constant2_Value_bq * L4_MABX_B.KPA_TO_MS /
6872 L4_MABX_P.Constant6_Value_g;
6873
6874 /* Math: '<S228>/Math Function'
6875 *
6876 * About '<S228>/Math Function':
6877 * Operator: magnitude^2
6878 */
6879 PositionFinalLimited = L4_MABX_B.Divide2_c;
6880 L4_MABX_B.MathFunction_l = PositionFinalLimited * PositionFinalLimited;
6881
6882 /* Sum: '<S228>/Add' incorporates:
6883 * Constant: '<S228>/Constant1'
6884 */
6885 L4_MABX_B.Add_nj = L4_MABX_P.Constant1_Value_m + L4_MABX_B.MathFunction_l;
6886
6887 /* Outputs for Atomic SubSystem: '<S222>/If_Then_Else' */
6888
6889 /* Constant: '<S217>/TIRE1_tire_pressure' incorporates:
6890 * Constant: '<S222>/Truck166_tire_pressure'
6891 */
6892 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_j,
6893 L4_MABX_P.TIRE1_tire_pressure_Value,
6894 L4_MABX_P.Truck166_tire_pressure_Value,
6895 &L4_MABX_B.If_Then_Else_nr);
6896
6897 /* End of Outputs for SubSystem: '<S222>/If_Then_Else' */
6898
6899 /* Gain: '<S228>/KPA_TO_BAR' */
6900 L4_MABX_B.KPA_TO_BAR = L4_MABX_P.KPA_TO_BAR_Gain *
6901 L4_MABX_B.If_Then_Else_nr.Switch;
6902
6903 /* Product: '<S228>/Divide' */
6904 L4_MABX_B.Divide_k = L4_MABX_B.Add_nj / L4_MABX_B.KPA_TO_BAR;
6905
6906 /* Sum: '<S228>/Add1' incorporates:
6907 * Constant: '<S228>/Constant'
6908 */
6909 L4_MABX_B.Coeff_of_rolling_resistance_Cr = L4_MABX_P.Constant_Value_h +
6910 L4_MABX_B.Divide_k;
6911
6912 /* Product: '<S226>/Divide1' incorporates:
6913 * Constant: '<S226>/Constant4'
6914 * Constant: '<S226>/Constant5'
6915 */
6916 L4_MABX_B.grade_angle_radians_a = L4_MABX_B.DataTypeConversion6_fq *
6917 L4_MABX_P.Constant4_Value_o / L4_MABX_P.Constant5_Value_p;
6918
6919 /* Trigonometry: '<S226>/Trigonometric Function' */
6920 L4_MABX_B.TrigonometricFunction_e = cos(L4_MABX_B.grade_angle_radians_a);
6921
6922 /* Product: '<S226>/Product2' incorporates:
6923 * Constant: '<S226>/Constant3'
6924 */
6925 L4_MABX_B.Rolling_resistance_Rr = L4_MABX_B.Coeff_of_rolling_resistance_Cr *
6926 L4_MABX_B.SPN1760_GrossCombinationVehicle *
6927 L4_MABX_B.TrigonometricFunction_e * L4_MABX_P.Constant3_Value_p;
6928
6929 /* Sum: '<S222>/Add' incorporates:
6930 * Constant: '<S222>/Constant'
6931 */
6932 L4_MABX_B.TotalTractiveForce_N = ((L4_MABX_B.Aerodynamic_resistance_Ra +
6933 L4_MABX_B.Gradient_resistance_Rg) + L4_MABX_B.Rolling_resistance_Rr) +
6934 L4_MABX_P.Constant_Value_g;
6935
6936 /* Saturate: '<S217>/Saturation' */
6937 DeltaTime = L4_MABX_B.SPN526_TransActualGearRatio;
6938 Time56 = L4_MABX_P.Saturation_LowerSat_p;
6939 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_n;
6940 if (DeltaTime > PositionFinalLimited) {
6941 L4_MABX_B.Saturation_g = PositionFinalLimited;
6942 } else if (DeltaTime < Time56) {
6943 L4_MABX_B.Saturation_g = Time56;
6944 } else {
6945 L4_MABX_B.Saturation_g = DeltaTime;
6946 }
6947
6948 /* End of Saturate: '<S217>/Saturation' */
6949
6950 /* MATLAB Function: '<S217>/F_wheel_to_Tq_eng' incorporates:
6951 * Constant: '<S217>/N_rar'
6952 * Constant: '<S217>/R_wheel_m'
6953 * Constant: '<S217>/eta'
6954 */
6955 /* MATLAB Function 'STATE_CONTROL_10ms/Throttle_controller_gov/Determine_engine_torque_and_losses/CalculateRoadLoadTorque/F_wheel_to_Tq_eng': '<S223>:1' */
6956 /* '<S223>:1:3' */
6957 L4_MABX_B.road_load_tq = L4_MABX_B.TotalTractiveForce_N *
6958 L4_MABX_P.R_wheel_m_Value / L4_MABX_P.N_rar_Value / L4_MABX_B.Saturation_g
6959 / L4_MABX_P.eta_Value;
6960
6961 /* DataTypeConversion: '<S217>/Data Type Conversion1' */
6962 L4_MABX_B.DataTypeConversion1_be = L4_MABX_B.SPN544_EngineReferenceTorque;
6963
6964 /* Product: '<S217>/Divide' */
6965 L4_MABX_B.RoadLoadTorque_fract = L4_MABX_B.road_load_tq /
6966 L4_MABX_B.DataTypeConversion1_be;
6967
6968 /* Gain: '<S217>/Gain' */
6969 L4_MABX_B.RoadLoadTorque_pct = L4_MABX_P.Gain_Gain_n *
6970 L4_MABX_B.RoadLoadTorque_fract;
6971
6972 /* Outputs for Atomic SubSystem: '<S213>/If_Then_Else' */
6973
6974 /* Constant: '<S213>/UseFeedForwardRoadLoad' incorporates:
6975 * Constant: '<S213>/ZeroRoadLoadCPV'
6976 */
6977 L4_MABX_If_Then_Else(L4_MABX_P.UseFeedForwardRoadLoad_Value,
6978 L4_MABX_B.RoadLoadTorque_pct,
6979 L4_MABX_P.ZeroRoadLoadCPV_Value,
6980 &L4_MABX_B.If_Then_Else_as);
6981
6982 /* End of Outputs for SubSystem: '<S213>/If_Then_Else' */
6983
6984 /* Sum: '<S213>/Add1' */
6985 L4_MABX_B.FeedForwardTorque_pct = (L4_MABX_B.If_Then_Else_bo.Switch +
6986 L4_MABX_B.If_Then_Else_br.Switch) + L4_MABX_B.If_Then_Else_as.Switch;
6987
6988 /* UnitDelay: '<S214>/Unit_Delay1' */
6989 L4_MABX_B.Unit_Delay1_m5 = L4_MABX_DW.Unit_Delay1_DSTATE_p1;
6990
6991 /* Logic: '<S214>/Logical Operator' incorporates:
6992 * Constant: '<S214>/Constant1'
6993 */
6994 L4_MABX_B.f_gpid_reset = (L4_MABX_P.Constant1_Value_g1 ||
6995 L4_MABX_B.Unit_Delay1_m5);
6996
6997 /* Sum: '<S214>/Subtract' */
6998 L4_MABX_B.Subtract_f = L4_MABX_B.VSPD_TARGET_KPH_APV_g -
6999 L4_MABX_B.VSPD_HYST_KPH_APV_f;
7000
7001 /* RelationalOperator: '<S214>/Relational Operator' */
7002 L4_MABX_B.RelationalOperator_fl = (L4_MABX_B.DataTypeConversion4_i >
7003 L4_MABX_B.Subtract_f);
7004
7005 /* UnitDelay: '<S214>/Unit_Delay' */
7006 L4_MABX_B.Unit_Delay_d5 = L4_MABX_DW.Unit_Delay_DSTATE_lq;
7007
7008 /* RelationalOperator: '<S214>/Relational Operator1' */
7009 L4_MABX_B.RelationalOperator1_d = (L4_MABX_B.RelationalOperator_fl !=
7010 L4_MABX_B.Unit_Delay_d5);
7011
7012 /* Lookup_n-D: '<S235>/2D_Lookup_Table' */
7013 L4_MABX_B.uD_Lookup_Table_am = look2_binlcapw
7014 (L4_MABX_B.SPN1760_GrossCombinationVehicle,
7015 L4_MABX_B.SPN526_TransActualGearRatio, TQ_DEM_MASS_STEP_MPV,
7016 TQ_DEM_GEAR_RATIO_STEP_MPV, TQ_DEM_KP_DATA_MPV,
7017 L4_MABX_P.uD_Lookup_Table_maxIndex, 8U);
7018
7019 /* Lookup_n-D: '<S236>/2D_Lookup_Table' */
7020 L4_MABX_B.uD_Lookup_Table_o = look2_binlcapw
7021 (L4_MABX_B.SPN1760_GrossCombinationVehicle,
7022 L4_MABX_B.SPN526_TransActualGearRatio, TQ_DEM_MASS_STEP_MPV,
7023 TQ_DEM_GEAR_RATIO_STEP_MPV, TQ_DEM_KI_DATA_MPV,
7024 L4_MABX_P.uD_Lookup_Table_maxIndex_p, 8U);
7025
7026 /* Lookup_n-D: '<S237>/2D_Lookup_Table' */
7027 L4_MABX_B.uD_Lookup_Table_h = look2_binlcapw
7028 (L4_MABX_B.SPN1760_GrossCombinationVehicle,
7029 L4_MABX_B.SPN526_TransActualGearRatio, TQ_DEM_MASS_STEP_MPV,
7030 TQ_DEM_GEAR_RATIO_STEP_MPV, TQ_DEM_KD_DATA_MPV,
7031 L4_MABX_P.uD_Lookup_Table_maxIndex_a, 8U);
7032
7033 /* Abs: '<S238>/Abs' */
7034 L4_MABX_B.Abs_igm = fabs(L4_MABX_B.uD_Lookup_Table_o);
7035
7036 /* Abs: '<S238>/Abs1' */
7037 L4_MABX_B.Abs1_a = fabs(L4_MABX_B.uD_Lookup_Table_h);
7038
7039 /* UnitDelay: '<S241>/Unit_Delay' */
7040 L4_MABX_B.Unit_Delay_i0 = L4_MABX_DW.Unit_Delay_DSTATE_be;
7041
7042 /* Logic: '<S241>/Logical Operator1' */
7043 L4_MABX_B.LogicalOperator1_o = (L4_MABX_B.Unit_Delay_i0 ||
7044 L4_MABX_B.f_gpid_reset);
7045
7046 /* UnitDelay: '<S261>/Unit_Delay1' */
7047 L4_MABX_B.Unit_Delay1_dw = L4_MABX_DW.Unit_Delay1_DSTATE_h;
7048
7049 /* Logic: '<S261>/Logical Operator' */
7050 L4_MABX_B.LogicalOperator_at = (L4_MABX_B.LogicalOperator1_o ||
7051 L4_MABX_B.Unit_Delay1_dw);
7052
7053 /* UnitDelay: '<S262>/Unit_Delay' */
7054 L4_MABX_B.Unit_Delay_ne = L4_MABX_DW.Unit_Delay_DSTATE_fi;
7055
7056 /* Logic: '<S262>/Logical Operator1' */
7057 L4_MABX_B.LogicalOperator1_kz = (L4_MABX_B.LogicalOperator1_o ||
7058 L4_MABX_B.Unit_Delay_ne);
7059
7060 /* UnitDelay: '<S266>/FixPt Unit Delay2' */
7061 L4_MABX_B.FixPtUnitDelay2_a = L4_MABX_DW.FixPtUnitDelay2_DSTATE_gq;
7062
7063 /* UnitDelay: '<S266>/FixPt Unit Delay1' */
7064 L4_MABX_B.Xold_a = L4_MABX_DW.FixPtUnitDelay1_DSTATE_a0;
7065
7066 /* Switch: '<S266>/Init' */
7067 if (L4_MABX_B.FixPtUnitDelay2_a != 0) {
7068 L4_MABX_B.Init_pu = L4_MABX_B.VSPD_TARGET_KPH_APV_g;
7069 } else {
7070 L4_MABX_B.Init_pu = L4_MABX_B.Xold_a;
7071 }
7072
7073 /* End of Switch: '<S266>/Init' */
7074
7075 /* Abs: '<S262>/Abs' incorporates:
7076 * Constant: '<S206>/TqDemSlewInc'
7077 */
7078 L4_MABX_B.Abs_n = fabs(L4_MABX_P.TqDemSlewInc_Value);
7079
7080 /* Product: '<S262>/Product1' incorporates:
7081 * Constant: '<S206>/TqDemDt'
7082 */
7083 L4_MABX_B.Product1_g = L4_MABX_B.Abs_n * L4_MABX_P.TqDemDt_Value;
7084
7085 /* Sum: '<S262>/Add1' */
7086 L4_MABX_B.Add1_g = L4_MABX_B.Init_pu + L4_MABX_B.Product1_g;
7087
7088 /* MinMax: '<S262>/MinMax2' */
7089 DeltaTime = L4_MABX_B.VSPD_TARGET_KPH_APV_g;
7090 PositionFinalLimited = L4_MABX_B.Add1_g;
7091 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7092 PositionFinalLimited = DeltaTime;
7093 }
7094
7095 L4_MABX_B.MinMax2_n = PositionFinalLimited;
7096
7097 /* End of MinMax: '<S262>/MinMax2' */
7098
7099 /* Abs: '<S262>/Abs1' incorporates:
7100 * Constant: '<S206>/TqDemSlewDec'
7101 */
7102 L4_MABX_B.Abs1_d = fabs(L4_MABX_P.TqDemSlewDec_Value);
7103
7104 /* Product: '<S262>/Product2' incorporates:
7105 * Constant: '<S206>/TqDemDt'
7106 */
7107 L4_MABX_B.Product2_bn = L4_MABX_P.TqDemDt_Value * L4_MABX_B.Abs1_d;
7108
7109 /* Sum: '<S262>/Subtract1' */
7110 L4_MABX_B.Subtract1_o = L4_MABX_B.Init_pu - L4_MABX_B.Product2_bn;
7111
7112 /* MinMax: '<S262>/MinMax1' */
7113 DeltaTime = L4_MABX_B.MinMax2_n;
7114 PositionFinalLimited = L4_MABX_B.Subtract1_o;
7115 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7116 PositionFinalLimited = DeltaTime;
7117 }
7118
7119 L4_MABX_B.MinMax1_gk = PositionFinalLimited;
7120
7121 /* End of MinMax: '<S262>/MinMax1' */
7122
7123 /* Outputs for Atomic SubSystem: '<S262>/If_Then_Else' */
7124 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_kz,
7125 L4_MABX_B.DataTypeConversion4_i, L4_MABX_B.MinMax1_gk,
7126 &L4_MABX_B.If_Then_Else_cp);
7127
7128 /* End of Outputs for SubSystem: '<S262>/If_Then_Else' */
7129
7130 /* Sum: '<S239>/Subtract' */
7131 L4_MABX_B.Subtract_jb = L4_MABX_B.If_Then_Else_cp.Switch -
7132 L4_MABX_B.DataTypeConversion4_i;
7133
7134 /* MinMax: '<S261>/MinMax1' incorporates:
7135 * Constant: '<S206>/TqDemDt'
7136 * Constant: '<S206>/TqDemTFildCtrlErrorSecs'
7137 */
7138 DeltaTime = L4_MABX_P.TqDemDt_Value;
7139 PositionFinalLimited = L4_MABX_P.TqDemTFildCtrlErrorSecs_Value;
7140 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7141 PositionFinalLimited = DeltaTime;
7142 }
7143
7144 L4_MABX_B.MinMax1_d = PositionFinalLimited;
7145
7146 /* End of MinMax: '<S261>/MinMax1' */
7147
7148 /* Saturate: '<S261>/Saturation' */
7149 DeltaTime = L4_MABX_B.MinMax1_d;
7150 Time56 = L4_MABX_P.Saturation_LowerSat_g5;
7151 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_f;
7152 if (DeltaTime > PositionFinalLimited) {
7153 L4_MABX_B.Saturation_d = PositionFinalLimited;
7154 } else if (DeltaTime < Time56) {
7155 L4_MABX_B.Saturation_d = Time56;
7156 } else {
7157 L4_MABX_B.Saturation_d = DeltaTime;
7158 }
7159
7160 /* End of Saturate: '<S261>/Saturation' */
7161
7162 /* Product: '<S261>/Divide' incorporates:
7163 * Constant: '<S206>/TqDemDt'
7164 */
7165 L4_MABX_B.Divide_n = L4_MABX_P.TqDemDt_Value / L4_MABX_B.Saturation_d;
7166
7167 /* Product: '<S261>/Product2' */
7168 L4_MABX_B.Product2_l = L4_MABX_B.Subtract_jb * L4_MABX_B.Divide_n;
7169
7170 /* Sum: '<S261>/Subtract1' incorporates:
7171 * Constant: '<S261>/Constant1'
7172 */
7173 L4_MABX_B.Subtract1_k = L4_MABX_P.Constant1_Value_ci - L4_MABX_B.Divide_n;
7174
7175 /* UnitDelay: '<S261>/Unit_Delay2' */
7176 L4_MABX_B.Unit_Delay2_o = L4_MABX_DW.Unit_Delay2_DSTATE_m;
7177
7178 /* Product: '<S261>/Product1' */
7179 L4_MABX_B.Product1_p = L4_MABX_B.Subtract1_k * L4_MABX_B.Unit_Delay2_o;
7180
7181 /* Sum: '<S261>/Add1' */
7182 L4_MABX_B.Add1_i = L4_MABX_B.Product2_l + L4_MABX_B.Product1_p;
7183
7184 /* Outputs for Atomic SubSystem: '<S261>/If_Then_Else' */
7185 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_at, L4_MABX_B.Subtract_jb,
7186 L4_MABX_B.Add1_i, &L4_MABX_B.If_Then_Else_k2);
7187
7188 /* End of Outputs for SubSystem: '<S261>/If_Then_Else' */
7189
7190 /* RelationalOperator: '<S246>/Compare' incorporates:
7191 * Constant: '<S246>/Constant'
7192 */
7193 L4_MABX_B.Compare_go = (L4_MABX_B.Abs1_a >
7194 L4_MABX_P.CompareToConstant1_const_i);
7195
7196 /* Outputs for Enabled SubSystem: '<S238>/Calculate_D_term' */
7197
7198 /* Constant: '<S206>/TqDemDt' incorporates:
7199 * Constant: '<S206>/TqDemTFildTSecs'
7200 */
7201 L4_MABX_Calculate_D_term(L4_MABX_B.Compare_go, L4_MABX_B.uD_Lookup_Table_h,
7202 L4_MABX_P.TqDemDt_Value, L4_MABX_B.LogicalOperator1_o,
7203 L4_MABX_B.If_Then_Else_k2.Switch, L4_MABX_P.TqDemTFildTSecs_Value,
7204 &L4_MABX_B.Calculate_D_term_h, &L4_MABX_DW.Calculate_D_term_h,
7205 &L4_MABX_P.Calculate_D_term_h);
7206
7207 /* End of Outputs for SubSystem: '<S238>/Calculate_D_term' */
7208
7209 /* Product: '<S244>/Product' */
7210 L4_MABX_B.Product_i = L4_MABX_B.uD_Lookup_Table_am *
7211 L4_MABX_B.If_Then_Else_k2.Switch;
7212
7213 /* RelationalOperator: '<S206>/Relational Operator' */
7214 L4_MABX_B.RelationalOperator_a = (L4_MABX_B.SPN524_TransSelectedGear !=
7215 L4_MABX_B.SPN523_TransCurrentGear);
7216
7217 /* UnitDelay: '<S216>/Unit_Delay' */
7218 L4_MABX_B.Unit_Delay_m = L4_MABX_DW.Unit_Delay_DSTATE_fz;
7219
7220 /* RelationalOperator: '<S245>/Compare' incorporates:
7221 * Constant: '<S245>/Constant'
7222 */
7223 L4_MABX_B.Compare_pj = (L4_MABX_B.Abs_igm >
7224 L4_MABX_P.CompareToConstant_const_d);
7225
7226 /* Outputs for Enabled SubSystem: '<S238>/Calculate_I_term' */
7227
7228 /* Constant: '<S206>/TqDemDt' incorporates:
7229 * Constant: '<S206>/GpidAwCondIntegration'
7230 * Constant: '<S206>/TqDemAwHyst'
7231 */
7232 L4_MABX_Calculate_I_term(L4_MABX_B.Compare_pj, L4_MABX_B.Product_i,
7233 L4_MABX_B.uD_Lookup_Table_o, L4_MABX_B.If_Then_Else_ct.Switch,
7234 L4_MABX_B.If_Then_Else_k2.Switch, L4_MABX_B.LogicalOperator1_o,
7235 L4_MABX_P.TqDemDt_Value, L4_MABX_B.FeedForwardTorque_pct,
7236 L4_MABX_P.GpidAwCondIntegration_Value, L4_MABX_P.TqDemAwHyst_Value,
7237 L4_MABX_B.RelationalOperator_a, L4_MABX_B.Unit_Delay_m,
7238 &L4_MABX_B.Calculate_I_term_n, &L4_MABX_DW.Calculate_I_term_n,
7239 &L4_MABX_P.Calculate_I_term_n);
7240
7241 /* End of Outputs for SubSystem: '<S238>/Calculate_I_term' */
7242
7243 /* RelationalOperator: '<S264>/min_relop' incorporates:
7244 * Constant: '<S206>/TqDemSlewInc'
7245 * Constant: '<S264>/min_val'
7246 */
7247 L4_MABX_B.min_relop_cbm = (L4_MABX_P.CheckStaticLowerBound_min_b <=
7248 L4_MABX_P.TqDemSlewInc_Value);
7249
7250 /* Assertion: '<S264>/Assertion' */
7251 utAssert(L4_MABX_B.min_relop_cbm);
7252
7253 /* Sum: '<S240>/Add' */
7254 L4_MABX_B.Add_ds = ((L4_MABX_B.Product_i +
7255 L4_MABX_B.Calculate_I_term_n.If_Then_Else.Switch) +
7256 L4_MABX_B.Calculate_D_term_h.Subtract) +
7257 L4_MABX_B.FeedForwardTorque_pct;
7258
7259 /* RelationalOperator: '<S267>/Relational Operator1' incorporates:
7260 * Constant: '<S206>/TqDemLimMax'
7261 */
7262 L4_MABX_B.RelationalOperator1_j = (L4_MABX_B.Add_ds >=
7263 L4_MABX_P.TqDemLimMax_Value);
7264
7265 /* RelationalOperator: '<S267>/Relational Operator' incorporates:
7266 * Constant: '<S206>/TqDemLimMin'
7267 */
7268 L4_MABX_B.RelationalOperator_p = (L4_MABX_B.Add_ds <=
7269 L4_MABX_P.TqDemLimMin_Value);
7270
7271 /* Outputs for Atomic SubSystem: '<S267>/If_Then_Else1' */
7272
7273 /* Constant: '<S206>/TqDemLimMin' */
7274 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_p,
7275 L4_MABX_P.TqDemLimMin_Value, L4_MABX_B.Add_ds,
7276 &L4_MABX_B.If_Then_Else1_h3);
7277
7278 /* End of Outputs for SubSystem: '<S267>/If_Then_Else1' */
7279
7280 /* Outputs for Atomic SubSystem: '<S267>/If_Then_Else' */
7281
7282 /* Constant: '<S206>/TqDemLimMax' */
7283 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_j,
7284 L4_MABX_P.TqDemLimMax_Value,
7285 L4_MABX_B.If_Then_Else1_h3.Switch,
7286 &L4_MABX_B.If_Then_Else_pi);
7287
7288 /* End of Outputs for SubSystem: '<S267>/If_Then_Else' */
7289
7290 /* SignalConversion: '<S206>/OutportBufferForPID_d_term' */
7291 L4_MABX_B.PID_d_term_c = L4_MABX_B.Calculate_D_term_h.Subtract;
7292
7293 /* SignalConversion: '<S206>/OutportBufferForPID_hold_i_term_f' */
7294 L4_MABX_B.PID_hold_i_term_f_b =
7295 L4_MABX_B.Calculate_I_term_n.LogicalOperator2;
7296
7297 /* SignalConversion: '<S206>/OutportBufferForPID_i_term' */
7298 L4_MABX_B.PID_i_term_c = L4_MABX_B.Calculate_I_term_n.If_Then_Else.Switch;
7299 } else {
7300 if (L4_MABX_DW.Throttle_controller_gov_MODE) {
7301 /* Disable for Enabled SubSystem: '<S238>/Calculate_D_term' */
7302 if (L4_MABX_DW.Calculate_D_term_h.Calculate_D_term_MODE) {
7303 L4_Calculate_D_term_Disable(&L4_MABX_B.Calculate_D_term_h,
7304 &L4_MABX_DW.Calculate_D_term_h, &L4_MABX_P.Calculate_D_term_h);
7305 }
7306
7307 /* End of Disable for SubSystem: '<S238>/Calculate_D_term' */
7308
7309 /* Disable for Enabled SubSystem: '<S238>/Calculate_I_term' */
7310 if (L4_MABX_DW.Calculate_I_term_n.Calculate_I_term_MODE) {
7311 L4_Calculate_I_term_Disable(&L4_MABX_B.Calculate_I_term_n,
7312 &L4_MABX_DW.Calculate_I_term_n, &L4_MABX_P.Calculate_I_term_n);
7313 }
7314
7315 /* End of Disable for SubSystem: '<S238>/Calculate_I_term' */
7316
7317 /* Disable for Outport: '<S206>/PID_output' */
7318 L4_MABX_B.If_Then_Else_pi.Switch = L4_MABX_P.PID_output_Y0_c;
7319
7320 /* Disable for Outport: '<S206>/PID_output_unlim' */
7321 L4_MABX_B.Add_ds = L4_MABX_P.PID_output_unlim_Y0;
7322
7323 /* Disable for Outport: '<S206>/PID_control_error' */
7324 L4_MABX_B.If_Then_Else_k2.Switch = L4_MABX_P.PID_control_error_Y0;
7325
7326 /* Disable for Outport: '<S206>/PID_p_term' */
7327 L4_MABX_B.Product_i = L4_MABX_P.PID_p_term_Y0;
7328
7329 /* Disable for Outport: '<S206>/PID_i_term' */
7330 L4_MABX_B.PID_i_term_c = L4_MABX_P.PID_i_term_Y0;
7331
7332 /* Disable for Outport: '<S206>/PID_d_term' */
7333 L4_MABX_B.PID_d_term_c = L4_MABX_P.PID_d_term_Y0;
7334
7335 /* Disable for Outport: '<S206>/PID_hold_i_term_f' */
7336 L4_MABX_B.PID_hold_i_term_f_b = L4_MABX_P.PID_hold_i_term_f_Y0;
7337 L4_MABX_DW.Throttle_controller_gov_MODE = false;
7338 }
7339 }
7340
7341 /* End of Outputs for SubSystem: '<S79>/Throttle_controller_gov' */
7342
7343 /* Switch: '<S79>/Switch' incorporates:
7344 * Constant: '<S79>/Constant3'
7345 */
7346 if (L4_MABX_B.F_Brake_control_active) {
7347 L4_MABX_B.ThrottlePID_Y_m = L4_MABX_P.Constant3_Value;
7348 } else {
7349 /* DataTypeConversion: '<S79>/Data Type Conversion3' */
7350 L4_MABX_B.DataTypeConversion3_m = L4_MABX_B.SPN544_EngineReferenceTorque;
7351
7352 /* Product: '<S79>/Product' incorporates:
7353 * Constant: '<S79>/Constant2'
7354 */
7355 L4_MABX_B.ThrottlePID_Y_c = L4_MABX_B.If_Then_Else_pi.Switch *
7356 L4_MABX_B.DataTypeConversion3_m * L4_MABX_P.Constant2_Value;
7357 L4_MABX_B.ThrottlePID_Y_m = L4_MABX_B.ThrottlePID_Y_c;
7358 }
7359
7360 /* End of Switch: '<S79>/Switch' */
7361
7362 /* MultiPortSwitch: '<S83>/Multiport Switch' incorporates:
7363 * Constant: '<S83>/APTC_DISABLED_PEDAL_POSITION_APV'
7364 * Constant: '<S83>/APTC_PEDAL_POS_SIG_SOURCE_APV'
7365 */
7366 switch (L4_MABX_P.APTC_PEDAL_POS_SIG_SOURCE_APV_V) {
7367 case ENUM_PEDAL_POS_SIGNAL_SOURCE_T_DISABLED:
7368 L4_MABX_B.MultiportSwitch = L4_MABX_P.APTC_DISABLED_PEDAL_POSITION_AP;
7369 break;
7370
7371 case ENUM_PEDAL_POS_SIGNAL_SOURCE_T_CAN_EEC2_00:
7372 L4_MABX_B.MultiportSwitch = L4_MABX_B.uDLookupTable;
7373 break;
7374
7375 case ENUM_PEDAL_POS_SIGNAL_SOURCE_T_SW_EMULATION:
7376 L4_MABX_B.MultiportSwitch = L4_MABX_B.ThrottlePID_Y_m;
7377 break;
7378
7379 case ENUM_PEDAL_POS_SIGNAL_SOURCE_T_CAN_EEC2_00_AND_SW_EMULATION:
7380 /* MinMax: '<S83>/MinMax' */
7381 DeltaTime = L4_MABX_B.uDLookupTable;
7382 PositionFinalLimited = L4_MABX_B.ThrottlePID_Y_m;
7383 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7384 PositionFinalLimited = DeltaTime;
7385 }
7386
7387 L4_MABX_B.MinMax_p = PositionFinalLimited;
7388
7389 /* End of MinMax: '<S83>/MinMax' */
7390 L4_MABX_B.MultiportSwitch = L4_MABX_B.MinMax_p;
7391 break;
7392
7393 default:
7394 L4_MABX_B.MultiportSwitch = L4_MABX_P.APTC_DISABLED_PEDAL_POSITION_AP;
7395 break;
7396 }
7397
7398 /* End of MultiPortSwitch: '<S83>/Multiport Switch' */
7399
7400 /* Outputs for Atomic SubSystem: '<S83>/If_Then_Else1' */
7401 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_d, L4_MABX_B.uDLookupTable,
7402 L4_MABX_B.MultiportSwitch, &L4_MABX_B.If_Then_Else1_lw);
7403
7404 /* End of Outputs for SubSystem: '<S83>/If_Then_Else1' */
7405
7406 /* DataTypeConversion: '<S82>/Data Type Conversion1' */
7407 L4_MABX_B.DataTypeConversion1_n3 = L4_MABX_B.SFunction1_o5_lc;
7408
7409 /* Lookup_n-D: '<S85>/2D_Lookup_Table' */
7410 L4_MABX_B.uD_Lookup_Table = look2_binlcapw(L4_MABX_B.If_Then_Else1_lw.Switch,
7411 L4_MABX_B.DataTypeConversion1_n3, APTC_TRQ_PED_INV_MAP_TRQ_STEPS,
7412 APTC_TRQ_PED_TRQ_ESPD_STEP_MPV, APTC_TRQ_PED_INV_MAP_PED_POS_MPV,
7413 L4_MABX_P.uD_Lookup_Table_maxIndex_h, 83U);
7414
7415 /* Logic: '<S82>/Logical Operator' */
7416 L4_MABX_B.LogicalOperator_j = !AutonomousEnabled;
7417
7418 /* Outputs for Atomic SubSystem: '<S82>/If_Then_Else' */
7419 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_j, Pedal_pwm_position,
7420 L4_MABX_B.uD_Lookup_Table, &L4_MABX_B.If_Then_Else_f);
7421
7422 /* End of Outputs for SubSystem: '<S82>/If_Then_Else' */
7423
7424 /* RelationalOperator: '<S75>/Relational Operator' incorporates:
7425 * Constant: '<S75>/Constant'
7426 */
7427 L4_MABX_B.APTC_arb_pedal_low_idl_sw_o = (APTC_PEDAL_LOW_IDLE_SW_THR_APV >
7428 L4_MABX_B.If_Then_Else_f.Switch);
7429
7430 /* DataTypeConversion: '<S84>/Data Type Conversion1' */
7431 L4_MABX_B.DataTypeConversion1_av = L4_MABX_B.SPN544_EngineReferenceTorque;
7432
7433 /* RelationalOperator: '<S89>/Relational Operator1' incorporates:
7434 * Constant: '<S84>/EngRefTqLimHigh'
7435 */
7436 L4_MABX_B.RelationalOperator1_i = (L4_MABX_B.DataTypeConversion1_av >=
7437 L4_MABX_P.EngRefTqLimHigh_Value);
7438
7439 /* RelationalOperator: '<S89>/Relational Operator' incorporates:
7440 * Constant: '<S84>/EngRefTqLimLow'
7441 */
7442 L4_MABX_B.RelationalOperator_c = (L4_MABX_B.DataTypeConversion1_av <=
7443 L4_MABX_P.EngRefTqLimLow_Value);
7444
7445 /* Outputs for Atomic SubSystem: '<S89>/If_Then_Else1' */
7446
7447 /* Constant: '<S84>/EngRefTqLimLow' */
7448 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_c,
7449 L4_MABX_P.EngRefTqLimLow_Value,
7450 L4_MABX_B.DataTypeConversion1_av,
7451 &L4_MABX_B.If_Then_Else1_lo);
7452
7453 /* End of Outputs for SubSystem: '<S89>/If_Then_Else1' */
7454
7455 /* Outputs for Atomic SubSystem: '<S89>/If_Then_Else' */
7456
7457 /* Constant: '<S84>/EngRefTqLimHigh' */
7458 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_i,
7459 L4_MABX_P.EngRefTqLimHigh_Value,
7460 L4_MABX_B.If_Then_Else1_lo.Switch,
7461 &L4_MABX_B.If_Then_Else_ff);
7462
7463 /* End of Outputs for SubSystem: '<S89>/If_Then_Else' */
7464
7465 /* Sum: '<S84>/Subtract' incorporates:
7466 * Constant: '<S84>/FrictionTrqAtRefTrqSpeed'
7467 */
7468 L4_MABX_B.Subtract_j = L4_MABX_B.If_Then_Else_ff.Switch -
7469 L4_MABX_P.FrictionTrqAtRefTrqSpeed_Value;
7470
7471 /* Product: '<S84>/Divide' incorporates:
7472 * Constant: '<S84>/Constant1'
7473 */
7474 L4_MABX_B.Divide_h = L4_MABX_B.If_Then_Else1_lw.Switch *
7475 L4_MABX_P.Constant1_Value_fg / L4_MABX_B.Subtract_j;
7476
7477 /* RelationalOperator: '<S90>/Relational Operator1' incorporates:
7478 * Constant: '<S84>/APPTqPercentMax'
7479 */
7480 L4_MABX_B.RelationalOperator1_a = (L4_MABX_B.Divide_h >=
7481 L4_MABX_P.APPTqPercentMax_Value);
7482
7483 /* RelationalOperator: '<S90>/Relational Operator' incorporates:
7484 * Constant: '<S84>/APPTqPercentMin'
7485 */
7486 L4_MABX_B.RelationalOperator_n = (L4_MABX_B.Divide_h <=
7487 L4_MABX_P.APPTqPercentMin_Value);
7488
7489 /* Outputs for Atomic SubSystem: '<S90>/If_Then_Else1' */
7490
7491 /* Constant: '<S84>/APPTqPercentMin' */
7492 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_n,
7493 L4_MABX_P.APPTqPercentMin_Value, L4_MABX_B.Divide_h,
7494 &L4_MABX_B.If_Then_Else1_p);
7495
7496 /* End of Outputs for SubSystem: '<S90>/If_Then_Else1' */
7497
7498 /* Outputs for Atomic SubSystem: '<S90>/If_Then_Else' */
7499
7500 /* Constant: '<S84>/APPTqPercentMax' */
7501 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_a,
7502 L4_MABX_P.APPTqPercentMax_Value,
7503 L4_MABX_B.If_Then_Else1_p.Switch,
7504 &L4_MABX_B.If_Then_Else_iz);
7505
7506 /* End of Outputs for SubSystem: '<S90>/If_Then_Else' */
7507
7508 /* MultiPortSwitch: '<S76>/Autonomous Mode Switch' incorporates:
7509 * Constant: '<S76>/AUTONOMOUS_MODE_SELECTOR_APV'
7510 * Constant: '<S76>/GhostMode'
7511 */
7512 if (AUTONOMOUS_MODE_SELECTOR_APV == ENUM_AUTONOMOUS_MODE_T_AUTO) {
7513 AutonomousOutputEnabled = L4_MABX_B.AND_l;
7514 } else {
7515 AutonomousOutputEnabled = (L4_MABX_P.GhostMode_Value != 0);
7516 }
7517
7518 /* End of MultiPortSwitch: '<S76>/Autonomous Mode Switch' */
7519
7520 /* Switch: '<S76>/Switch' incorporates:
7521 * Constant: '<S76>/Failure'
7522 * Constant: '<S76>/Running'
7523 */
7524 if (EStop) {
7525 tmp_1 = L4_MABX_P.Running_Value;
7526 if (tmp_1 < 0) {
7527 tmp_1 = 0;
7528 }
7529
7530 MABX_Mode = (uint8_T)tmp_1;
7531 } else {
7532 tmp_1 = L4_MABX_P.Failure_Value;
7533 if (tmp_1 < 0) {
7534 tmp_1 = 0;
7535 }
7536
7537 MABX_Mode = (uint8_T)tmp_1;
7538 }
7539
7540 /* End of Switch: '<S76>/Switch' */
7541
7542 /* DataTypeConversion: '<S98>/Data Type Conversion2' */
7543 PositionFinalLimited = floor(L4_MABX_B.SFunction1_o8_l);
7544 if (rtIsNaN(PositionFinalLimited) || rtIsInf(PositionFinalLimited)) {
7545 PositionFinalLimited = 0.0;
7546 } else {
7547 PositionFinalLimited = fmod(PositionFinalLimited, 256.0);
7548 }
7549
7550 L4_MABX_B.DataTypeConversion2_ew = (uint8_T)(PositionFinalLimited < 0.0 ?
7551 (int32_T)(uint8_T)-(int8_T)(uint8_T)-PositionFinalLimited : (int32_T)
7552 (uint8_T)PositionFinalLimited);
7553
7554 /* End of DataTypeConversion: '<S98>/Data Type Conversion2' */
7555
7556 /* DataTypeConversion: '<S98>/Data Type Conversion' */
7557 L4_MABX_B.DataTypeConversion_lr = (ENUM_SWITCH_T)
7558 L4_MABX_B.DataTypeConversion2_ew;
7559
7560 /* DataTypeConversion: '<S98>/Data Type Conversion3' */
7561 PositionFinalLimited = floor(L4_MABX_B.SFunction1_o4_nr);
7562 if (rtIsNaN(PositionFinalLimited) || rtIsInf(PositionFinalLimited)) {
7563 PositionFinalLimited = 0.0;
7564 } else {
7565 PositionFinalLimited = fmod(PositionFinalLimited, 256.0);
7566 }
7567
7568 L4_MABX_B.DataTypeConversion3_ps = (uint8_T)(PositionFinalLimited < 0.0 ?
7569 (int32_T)(uint8_T)-(int8_T)(uint8_T)-PositionFinalLimited : (int32_T)
7570 (uint8_T)PositionFinalLimited);
7571
7572 /* End of DataTypeConversion: '<S98>/Data Type Conversion3' */
7573
7574 /* DataTypeConversion: '<S98>/Data Type Conversion1' */
7575 L4_MABX_B.DataTypeConversion1_lu = (ENUM_SWITCH_T)
7576 L4_MABX_B.DataTypeConversion3_ps;
7577
7578 /* RelationalOperator: '<S98>/Relational Operator3' incorporates:
7579 * Constant: '<S98>/CPV3'
7580 */
7581 L4_MABX_B.RelationalOperator3_c[0] = (L4_MABX_B.DataTypeConversion_lr ==
7582 L4_MABX_P.CPV3_Value_p);
7583 L4_MABX_B.RelationalOperator3_c[1] = (L4_MABX_B.DataTypeConversion1_lu ==
7584 L4_MABX_P.CPV3_Value_p);
7585
7586 /* Logic: '<S98>/Logical Operator4' */
7587 L4_MABX_B.LogicalOperator4_o = (L4_MABX_B.RelationalOperator3_c[0] &&
7588 L4_MABX_B.RelationalOperator3_c[1]);
7589
7590 /* Gain: '<S98>/Gain4' */
7591 L4_MABX_B.Primary_brake_circuit_pressure_ = L4_MABX_P.Gain4_Gain *
7592 L4_MABX_B.PressureP42;
7593
7594 /* Gain: '<S98>/Gain5' */
7595 L4_MABX_B.Secondary_brake_circuit_pressur = L4_MABX_P.Gain5_Gain *
7596 L4_MABX_B.PressureP4;
7597
7598 /* RelationalOperator: '<S98>/Relational Operator4' incorporates:
7599 * Constant: '<S98>/BRAKE_APPL_THRESHOLD_KPA_APV'
7600 */
7601 L4_MABX_B.RelationalOperator4[0] = (L4_MABX_B.Primary_brake_circuit_pressure_ >
7602 L4_MABX_P.BRAKE_APPL_THRESHOLD_KPA_APV_Va);
7603 L4_MABX_B.RelationalOperator4[1] = (L4_MABX_B.Secondary_brake_circuit_pressur >
7604 L4_MABX_P.BRAKE_APPL_THRESHOLD_KPA_APV_Va);
7605
7606 /* Logic: '<S98>/Logical Operator3' */
7607 L4_MABX_B.F_Service_brake_pressure_applie = (L4_MABX_B.RelationalOperator4[0] ||
7608 L4_MABX_B.RelationalOperator4[1]);
7609
7610 /* RelationalOperator: '<S98>/Relational Operator6' incorporates:
7611 * Constant: '<S98>/CPV4'
7612 */
7613 L4_MABX_B.RelationalOperator6[0] = (L4_MABX_B.DataTypeConversion_lr ==
7614 L4_MABX_P.CPV4_Value_n);
7615 L4_MABX_B.RelationalOperator6[1] = (L4_MABX_B.DataTypeConversion1_lu ==
7616 L4_MABX_P.CPV4_Value_n);
7617
7618 /* Logic: '<S98>/Logical Operator' */
7619 L4_MABX_B.F_Brake_sw_CAN = (L4_MABX_B.RelationalOperator6[0] ||
7620 L4_MABX_B.RelationalOperator6[1]);
7621
7622 /* Logic: '<S98>/Logical Operator5' */
7623 L4_MABX_B.LogicalOperator5_n = (L4_MABX_B.F_Service_brake_pressure_applie ||
7624 L4_MABX_B.F_Brake_sw_CAN);
7625
7626 /* Outputs for Atomic SubSystem: '<S98>/If_Then_Else' */
7627 L4_MABX_If_Then_Else_l(L4_MABX_B.LogicalOperator4_o,
7628 L4_MABX_B.F_Service_brake_pressure_applie, L4_MABX_B.LogicalOperator5_n,
7629 &L4_MABX_B.If_Then_Else_la);
7630
7631 /* End of Outputs for SubSystem: '<S98>/If_Then_Else' */
7632
7633 /* RelationalOperator: '<S102>/Relational Operator1' incorporates:
7634 * Constant: '<S102>/SPN904_ZERO_SPD_CPV'
7635 */
7636 L4_MABX_B.F_Vehicle_stopped = (L4_MABX_B.DataTypeConversion5_o <=
7637 L4_MABX_P.SPN904_ZERO_SPD_CPV_Value);
7638
7639 /* Sum: '<S99>/Add' */
7640 L4_MABX_B.Add_d = L4_MABX_B.Primary_brake_circuit_pressure_ +
7641 L4_MABX_B.Secondary_brake_circuit_pressur;
7642
7643 /* Gain: '<S99>/Gain' */
7644 L4_MABX_B.Gain_g = L4_MABX_P.Gain_Gain_g * L4_MABX_B.Add_d;
7645
7646 /* Outputs for Enabled SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' incorporates:
7647 * EnablePort: '<S178>/Enable'
7648 */
7649 if (L4_MABX_DW.Determine_shift_interlock_brake) {
7650 /* Disable for Outport: '<S178>/Shift_interlock_brake_press_target_kpa' */
7651 L4_MABX_B.If_Then_Else_il.Switch = L4_MABX_P.Shift_interlock_brake_press_tar;
7652
7653 /* Disable for Outport: '<S178>/F_Shift_interlock_conditions_met' */
7654 L4_MABX_B.F_Shift_interlock_conditions_me =
7655 L4_MABX_P.F_Shift_interlock_conditions_me;
7656 L4_MABX_DW.Determine_shift_interlock_brake = false;
7657 }
7658
7659 /* End of Outputs for SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' */
7660
7661 /* RelationalOperator: '<S200>/Compare' incorporates:
7662 * Constant: '<S200>/Constant'
7663 */
7664 L4_MABX_B.Compare_g = (L4_MABX_B.VSPD_TARGET_KPH_APV_g ==
7665 L4_MABX_P.Constant_Value_ol);
7666
7667 /* RelationalOperator: '<S103>/Relational Operator4' */
7668 L4_MABX_B.RelationalOperator4_l = (L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_AP_b >=
7669 L4_MABX_B.DataTypeConversion5_o);
7670
7671 /* Logic: '<S103>/Logical Operator3' */
7672 L4_MABX_B.F_Hold_brakes_at_zero_d = (L4_MABX_B.F_Brake_control_active &&
7673 L4_MABX_B.Compare_g && L4_MABX_B.RelationalOperator4_l);
7674
7675 /* Outputs for Enabled SubSystem: '<S99>/Determine_brake_hold_pressure_target' incorporates:
7676 * EnablePort: '<S177>/Enable'
7677 */
7678 if (L4_MABX_B.F_Hold_brakes_at_zero_d) {
7679 if (!L4_MABX_DW.Determine_brake_hold_pressure_t) {
7680 /* InitializeConditions for UnitDelay: '<S177>/Unit_Delay' */
7681 L4_MABX_DW.Unit_Delay_DSTATE_c = L4_MABX_P.Unit_Delay_InitialCondition_d;
7682
7683 /* InitializeConditions for UnitDelay: '<S181>/Unit_Delay' */
7684 L4_MABX_DW.Unit_Delay_DSTATE_or = L4_MABX_P.Unit_Delay_InitialCondition_fy;
7685
7686 /* InitializeConditions for UnitDelay: '<S185>/FixPt Unit Delay2' */
7687 L4_MABX_DW.FixPtUnitDelay2_DSTATE_je =
7688 L4_MABX_P.FixPtUnitDelay2_InitialCondit_e;
7689
7690 /* InitializeConditions for UnitDelay: '<S185>/FixPt Unit Delay1' */
7691 L4_MABX_DW.FixPtUnitDelay1_DSTATE_b0 =
7692 L4_MABX_P.FixPtUnitDelay1_InitialCondit_p;
7693
7694 /* InitializeConditions for UnitDelay: '<S182>/Unit_Delay' */
7695 L4_MABX_DW.Unit_Delay_DSTATE_oj = L4_MABX_P.Unit_Delay_InitialCondition_k;
7696 L4_MABX_DW.Determine_brake_hold_pressure_t = true;
7697 }
7698
7699 /* Logic: '<S177>/Logical Operator2' */
7700 L4_MABX_B.F_Brake_hold_conditions_met = (L4_MABX_B.If_Then_Else_la.Switch &&
7701 L4_MABX_B.F_Vehicle_stopped);
7702
7703 /* UnitDelay: '<S177>/Unit_Delay' */
7704 L4_MABX_B.Unit_Delay_a = L4_MABX_DW.Unit_Delay_DSTATE_c;
7705
7706 /* UnitDelay: '<S181>/Unit_Delay' */
7707 L4_MABX_B.Unit_Delay_h0 = L4_MABX_DW.Unit_Delay_DSTATE_or;
7708
7709 /* Logic: '<S181>/Logical Operator1' incorporates:
7710 * Constant: '<S177>/CPV1'
7711 */
7712 L4_MABX_B.LogicalOperator1_ou = (L4_MABX_P.CPV1_Value_p ||
7713 L4_MABX_B.Unit_Delay_h0);
7714
7715 /* Outputs for Atomic SubSystem: '<S177>/If_Then_Else1' */
7716
7717 /* Constant: '<S177>/CPV' */
7718 L4_MABX_If_Then_Else_g(L4_MABX_B.F_Brake_hold_conditions_met,
7719 L4_MABX_B.Unit_Delay_a, L4_MABX_P.CPV_Value_k, &L4_MABX_B.If_Then_Else1_mf);
7720
7721 /* End of Outputs for SubSystem: '<S177>/If_Then_Else1' */
7722
7723 /* UnitDelay: '<S185>/FixPt Unit Delay2' */
7724 L4_MABX_B.FixPtUnitDelay2_d = L4_MABX_DW.FixPtUnitDelay2_DSTATE_je;
7725
7726 /* UnitDelay: '<S185>/FixPt Unit Delay1' */
7727 L4_MABX_B.Xold_b = L4_MABX_DW.FixPtUnitDelay1_DSTATE_b0;
7728
7729 /* Switch: '<S185>/Init' */
7730 if (L4_MABX_B.FixPtUnitDelay2_d != 0) {
7731 L4_MABX_B.Init_k = L4_MABX_B.If_Then_Else1_mf.Switch;
7732 } else {
7733 L4_MABX_B.Init_k = L4_MABX_B.Xold_b;
7734 }
7735
7736 /* End of Switch: '<S185>/Init' */
7737
7738 /* Abs: '<S181>/Abs' incorporates:
7739 * Constant: '<S177>/BRAKE_PRESS_TARGET_S LEW_INC_APV'
7740 */
7741 L4_MABX_B.Abs_b = fabs(L4_MABX_P.BRAKE_PRESS_TARGET_SLEW_INC_APV);
7742
7743 /* DigitalClock: '<S182>/Digital Clock' */
7744 L4_MABX_B.DigitalClock_c = L4_MABX_M->Timing.t[0];
7745
7746 /* UnitDelay: '<S182>/Unit_Delay' */
7747 L4_MABX_B.Unit_Delay_ka = L4_MABX_DW.Unit_Delay_DSTATE_oj;
7748
7749 /* Sum: '<S182>/Subtract' */
7750 L4_MABX_B.Subtract_ko = L4_MABX_B.DigitalClock_c - L4_MABX_B.Unit_Delay_ka;
7751
7752 /* Product: '<S181>/Product1' */
7753 L4_MABX_B.Product1_f = L4_MABX_B.Abs_b * L4_MABX_B.Subtract_ko;
7754
7755 /* Sum: '<S181>/Add1' */
7756 L4_MABX_B.Add1_cj = L4_MABX_B.Init_k + L4_MABX_B.Product1_f;
7757
7758 /* MinMax: '<S181>/MinMax2' */
7759 DeltaTime = L4_MABX_B.If_Then_Else1_mf.Switch;
7760 PositionFinalLimited = L4_MABX_B.Add1_cj;
7761 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7762 PositionFinalLimited = DeltaTime;
7763 }
7764
7765 L4_MABX_B.MinMax2_c2 = PositionFinalLimited;
7766
7767 /* End of MinMax: '<S181>/MinMax2' */
7768
7769 /* Abs: '<S181>/Abs1' incorporates:
7770 * Constant: '<S177>/BRAKE_PRESS_TARGET_SLEW_DEC_APV'
7771 */
7772 L4_MABX_B.Abs1_ar = fabs(L4_MABX_P.BRAKE_PRESS_TARGET_SLEW_DEC_APV);
7773
7774 /* Product: '<S181>/Product2' */
7775 L4_MABX_B.Product2_c3 = L4_MABX_B.Subtract_ko * L4_MABX_B.Abs1_ar;
7776
7777 /* Sum: '<S181>/Subtract1' */
7778 L4_MABX_B.Subtract1_ev = L4_MABX_B.Init_k - L4_MABX_B.Product2_c3;
7779
7780 /* MinMax: '<S181>/MinMax1' */
7781 DeltaTime = L4_MABX_B.MinMax2_c2;
7782 PositionFinalLimited = L4_MABX_B.Subtract1_ev;
7783 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7784 PositionFinalLimited = DeltaTime;
7785 }
7786
7787 L4_MABX_B.MinMax1_jw = PositionFinalLimited;
7788
7789 /* End of MinMax: '<S181>/MinMax1' */
7790
7791 /* Outputs for Atomic SubSystem: '<S181>/If_Then_Else' */
7792 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_ou, L4_MABX_B.Gain_g,
7793 L4_MABX_B.MinMax1_jw, &L4_MABX_B.If_Then_Else_nz);
7794
7795 /* End of Outputs for SubSystem: '<S181>/If_Then_Else' */
7796
7797 /* Outputs for Atomic SubSystem: '<S177>/If_Then_Else' */
7798 L4_MABX_If_Then_Else_g(L4_MABX_B.F_Brake_hold_conditions_met,
7799 L4_MABX_B.Unit_Delay_a, L4_MABX_B.If_Then_Else_nz.Switch,
7800 &L4_MABX_B.If_Then_Else_gj);
7801
7802 /* End of Outputs for SubSystem: '<S177>/If_Then_Else' */
7803
7804 /* RelationalOperator: '<S183>/min_relop' incorporates:
7805 * Constant: '<S177>/BRAKE_PRESS_TARGET_S LEW_INC_APV'
7806 * Constant: '<S183>/min_val'
7807 */
7808 L4_MABX_B.min_relop_i = (L4_MABX_P.CheckStaticLowerBound_min_i <=
7809 L4_MABX_P.BRAKE_PRESS_TARGET_SLEW_INC_APV);
7810
7811 /* Assertion: '<S183>/Assertion' */
7812 utAssert(L4_MABX_B.min_relop_i);
7813 } else {
7814 if (L4_MABX_DW.Determine_brake_hold_pressure_t) {
7815 /* Disable for Outport: '<S177>/Brake_hold_brake_press_target_kpa' */
7816 L4_MABX_B.If_Then_Else_gj.Switch =
7817 L4_MABX_P.Brake_hold_brake_press_target_k;
7818
7819 /* Disable for Outport: '<S177>/F_Brake_hold_conditions_met' */
7820 L4_MABX_B.F_Brake_hold_conditions_met =
7821 L4_MABX_P.F_Brake_hold_conditions_met_Y0;
7822 L4_MABX_DW.Determine_brake_hold_pressure_t = false;
7823 }
7824 }
7825
7826 /* End of Outputs for SubSystem: '<S99>/Determine_brake_hold_pressure_target' */
7827
7828 /* MinMax: '<S99>/MinMax' */
7829 DeltaTime = L4_MABX_B.If_Then_Else_il.Switch;
7830 PositionFinalLimited = L4_MABX_B.If_Then_Else_gj.Switch;
7831 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7832 PositionFinalLimited = DeltaTime;
7833 }
7834
7835 L4_MABX_B.Brake_pressure_target_kpa = PositionFinalLimited;
7836
7837 /* End of MinMax: '<S99>/MinMax' */
7838
7839 /* Gain: '<S98>/Gain1' */
7840 L4_MABX_B.Bendix_2C2_Primary_brake_circui = L4_MABX_P.Gain1_Gain *
7841 L4_MABX_B.PressureP21;
7842
7843 /* Gain: '<S98>/Gain2' */
7844 L4_MABX_B.Bendix_2C2_Secondary_brake_circ = L4_MABX_P.Gain2_Gain *
7845 L4_MABX_B.PressureP22;
7846
7847 /* Sum: '<S100>/Add' */
7848 L4_MABX_B.Add_n = L4_MABX_B.Primary_brake_circuit_pressure_ +
7849 L4_MABX_B.Secondary_brake_circuit_pressur;
7850
7851 /* Gain: '<S100>/Gain' */
7852 L4_MABX_B.brake_system_avg_appl_pressure_ = L4_MABX_P.Gain_Gain_i *
7853 L4_MABX_B.Add_n;
7854
7855 /* Gain: '<S98>/Gain3' */
7856 L4_MABX_B.Primary_brake_circuit_pressur_n = L4_MABX_P.Gain3_Gain *
7857 L4_MABX_B.PressureP1;
7858
7859 /* Product: '<S100>/Divide2' */
7860 L4_MABX_B.Divide2 = L4_MABX_B.brake_system_avg_appl_pressure_ /
7861 L4_MABX_B.Primary_brake_circuit_pressur_n;
7862
7863 /* Gain: '<S100>/Gain5' */
7864 L4_MABX_B.Gain5 = L4_MABX_P.Gain5_Gain_l * L4_MABX_B.Divide2;
7865
7866 /* Saturate: '<S100>/Saturation3' */
7867 DeltaTime = L4_MABX_B.Gain5;
7868 Time56 = L4_MABX_P.Saturation3_LowerSat;
7869 PositionFinalLimited = L4_MABX_P.Saturation3_UpperSat;
7870 if (DeltaTime > PositionFinalLimited) {
7871 L4_MABX_B.Brake_appl_percent = PositionFinalLimited;
7872 } else if (DeltaTime < Time56) {
7873 L4_MABX_B.Brake_appl_percent = Time56;
7874 } else {
7875 L4_MABX_B.Brake_appl_percent = DeltaTime;
7876 }
7877
7878 /* End of Saturate: '<S100>/Saturation3' */
7879
7880 /* Outputs for Enabled SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' incorporates:
7881 * EnablePort: '<S96>/Enable'
7882 */
7883 if (L4_MABX_B.F_Hold_brakes_at_zero_d) {
7884 if (!L4_MABX_DW.Bendix_2C2_brake_application_pr) {
7885 /* InitializeConditions for UnitDelay: '<S105>/Unit_Delay' */
7886 L4_MABX_DW.Unit_Delay_DSTATE_d = L4_MABX_P.Unit_Delay_InitialCondition;
7887
7888 /* InitializeConditions for UnitDelay: '<S109>/Unit_Delay' */
7889 L4_MABX_DW.Unit_Delay_DSTATE_omj =
7890 L4_MABX_P.Unit_Delay_InitialCondition_lt;
7891
7892 /* InitializeConditions for UnitDelay: '<S129>/Unit_Delay1' */
7893 L4_MABX_DW.Unit_Delay1_DSTATE_b = L4_MABX_P.Unit_Delay1_InitialCondition;
7894
7895 /* InitializeConditions for UnitDelay: '<S130>/Unit_Delay' */
7896 L4_MABX_DW.Unit_Delay_DSTATE_h4 = L4_MABX_P.Unit_Delay_InitialCondition_og;
7897
7898 /* InitializeConditions for UnitDelay: '<S134>/FixPt Unit Delay2' */
7899 L4_MABX_DW.FixPtUnitDelay2_DSTATE_gm =
7900 L4_MABX_P.FixPtUnitDelay2_InitialConditio;
7901
7902 /* InitializeConditions for UnitDelay: '<S134>/FixPt Unit Delay1' */
7903 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g1 =
7904 L4_MABX_P.FixPtUnitDelay1_InitialConditio;
7905
7906 /* InitializeConditions for UnitDelay: '<S129>/Unit_Delay2' */
7907 L4_MABX_DW.Unit_Delay2_DSTATE_dy = L4_MABX_P.Unit_Delay2_InitialCondition;
7908
7909 /* InitializeConditions for UnitDelay: '<S104>/Unit_Delay' */
7910 L4_MABX_DW.Unit_Delay_DSTATE_i = L4_MABX_P.Unit_Delay_InitialCondition_p;
7911 L4_MABX_DW.Bendix_2C2_brake_application_pr = true;
7912 }
7913
7914 /* Sum: '<S96>/Add' */
7915 L4_MABX_B.Add_my = L4_MABX_B.Bendix_2C2_Primary_brake_circui +
7916 L4_MABX_B.Bendix_2C2_Secondary_brake_circ;
7917
7918 /* Gain: '<S96>/Gain' */
7919 L4_MABX_B.Gain_i = L4_MABX_P.Gain_Gain * L4_MABX_B.Add_my;
7920
7921 /* Abs: '<S106>/Abs' incorporates:
7922 * Constant: '<S96>/BRK_PRESS_DEM_KI_APV'
7923 */
7924 L4_MABX_B.Abs_k4 = fabs(L4_MABX_P.BRK_PRESS_DEM_KI_APV_Value);
7925
7926 /* Abs: '<S106>/Abs1' incorporates:
7927 * Constant: '<S96>/BRK_PRESS_DEM_KD_APV'
7928 */
7929 L4_MABX_B.Abs1_ap = fabs(L4_MABX_P.BRK_PRESS_DEM_KD_APV_Value);
7930
7931 /* DigitalClock: '<S105>/Digital Clock' */
7932 L4_MABX_B.DigitalClock_j = L4_MABX_M->Timing.t[0];
7933
7934 /* UnitDelay: '<S105>/Unit_Delay' */
7935 L4_MABX_B.Unit_Delay_j = L4_MABX_DW.Unit_Delay_DSTATE_d;
7936
7937 /* Sum: '<S105>/Subtract' */
7938 L4_MABX_B.Subtract_jr = L4_MABX_B.DigitalClock_j - L4_MABX_B.Unit_Delay_j;
7939
7940 /* UnitDelay: '<S109>/Unit_Delay' */
7941 L4_MABX_B.Unit_Delay_nm = L4_MABX_DW.Unit_Delay_DSTATE_omj;
7942
7943 /* Logic: '<S109>/Logical Operator1' incorporates:
7944 * Constant: '<S96>/CPV2'
7945 */
7946 L4_MABX_B.LogicalOperator1_ax = (L4_MABX_B.Unit_Delay_nm ||
7947 L4_MABX_P.CPV2_Value_m);
7948
7949 /* UnitDelay: '<S129>/Unit_Delay1' */
7950 L4_MABX_B.Unit_Delay1_i = L4_MABX_DW.Unit_Delay1_DSTATE_b;
7951
7952 /* Logic: '<S129>/Logical Operator' */
7953 L4_MABX_B.LogicalOperator_mu = (L4_MABX_B.LogicalOperator1_ax ||
7954 L4_MABX_B.Unit_Delay1_i);
7955
7956 /* UnitDelay: '<S130>/Unit_Delay' */
7957 L4_MABX_B.Unit_Delay_nl = L4_MABX_DW.Unit_Delay_DSTATE_h4;
7958
7959 /* Logic: '<S130>/Logical Operator1' */
7960 L4_MABX_B.LogicalOperator1_mk = (L4_MABX_B.LogicalOperator1_ax ||
7961 L4_MABX_B.Unit_Delay_nl);
7962
7963 /* UnitDelay: '<S134>/FixPt Unit Delay2' */
7964 L4_MABX_B.FixPtUnitDelay2_op = L4_MABX_DW.FixPtUnitDelay2_DSTATE_gm;
7965
7966 /* UnitDelay: '<S134>/FixPt Unit Delay1' */
7967 L4_MABX_B.Xold_g3 = L4_MABX_DW.FixPtUnitDelay1_DSTATE_g1;
7968
7969 /* Switch: '<S134>/Init' */
7970 if (L4_MABX_B.FixPtUnitDelay2_op != 0) {
7971 L4_MABX_B.Init_hw = L4_MABX_B.Brake_pressure_target_kpa;
7972 } else {
7973 L4_MABX_B.Init_hw = L4_MABX_B.Xold_g3;
7974 }
7975
7976 /* End of Switch: '<S134>/Init' */
7977
7978 /* Abs: '<S130>/Abs' incorporates:
7979 * Constant: '<S96>/CPV4'
7980 */
7981 L4_MABX_B.Abs_l = fabs(L4_MABX_P.CPV4_Value);
7982
7983 /* Product: '<S130>/Product1' */
7984 L4_MABX_B.Product1_b = L4_MABX_B.Abs_l * L4_MABX_B.Subtract_jr;
7985
7986 /* Sum: '<S130>/Add1' */
7987 L4_MABX_B.Add1_hu = L4_MABX_B.Init_hw + L4_MABX_B.Product1_b;
7988
7989 /* MinMax: '<S130>/MinMax2' */
7990 DeltaTime = L4_MABX_B.Brake_pressure_target_kpa;
7991 PositionFinalLimited = L4_MABX_B.Add1_hu;
7992 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7993 PositionFinalLimited = DeltaTime;
7994 }
7995
7996 L4_MABX_B.MinMax2_b = PositionFinalLimited;
7997
7998 /* End of MinMax: '<S130>/MinMax2' */
7999
8000 /* Abs: '<S130>/Abs1' incorporates:
8001 * Constant: '<S96>/CPV5'
8002 */
8003 L4_MABX_B.Abs1_d1 = fabs(L4_MABX_P.CPV5_Value);
8004
8005 /* Product: '<S130>/Product2' */
8006 L4_MABX_B.Product2_d = L4_MABX_B.Subtract_jr * L4_MABX_B.Abs1_d1;
8007
8008 /* Sum: '<S130>/Subtract1' */
8009 L4_MABX_B.Subtract1_a = L4_MABX_B.Init_hw - L4_MABX_B.Product2_d;
8010
8011 /* MinMax: '<S130>/MinMax1' */
8012 DeltaTime = L4_MABX_B.MinMax2_b;
8013 PositionFinalLimited = L4_MABX_B.Subtract1_a;
8014 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8015 PositionFinalLimited = DeltaTime;
8016 }
8017
8018 L4_MABX_B.MinMax1_ps = PositionFinalLimited;
8019
8020 /* End of MinMax: '<S130>/MinMax1' */
8021
8022 /* Outputs for Atomic SubSystem: '<S130>/If_Then_Else' */
8023 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_mk, L4_MABX_B.Gain_i,
8024 L4_MABX_B.MinMax1_ps, &L4_MABX_B.If_Then_Else_bg);
8025
8026 /* End of Outputs for SubSystem: '<S130>/If_Then_Else' */
8027
8028 /* Sum: '<S107>/Subtract' */
8029 L4_MABX_B.Subtract_n = L4_MABX_B.If_Then_Else_bg.Switch - L4_MABX_B.Gain_i;
8030
8031 /* MinMax: '<S129>/MinMax1' incorporates:
8032 * Constant: '<S96>/BRK_PRESS_DEM_T_FILT_CTRL_ERROR_APV'
8033 */
8034 DeltaTime = L4_MABX_B.Subtract_jr;
8035 PositionFinalLimited = L4_MABX_P.BRK_PRESS_DEM_T_FILT_CTRL_ERROR;
8036 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8037 PositionFinalLimited = DeltaTime;
8038 }
8039
8040 L4_MABX_B.MinMax1_h1 = PositionFinalLimited;
8041
8042 /* End of MinMax: '<S129>/MinMax1' */
8043
8044 /* Saturate: '<S129>/Saturation' */
8045 DeltaTime = L4_MABX_B.MinMax1_h1;
8046 Time56 = L4_MABX_P.Saturation_LowerSat;
8047 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat;
8048 if (DeltaTime > PositionFinalLimited) {
8049 L4_MABX_B.Saturation_pu = PositionFinalLimited;
8050 } else if (DeltaTime < Time56) {
8051 L4_MABX_B.Saturation_pu = Time56;
8052 } else {
8053 L4_MABX_B.Saturation_pu = DeltaTime;
8054 }
8055
8056 /* End of Saturate: '<S129>/Saturation' */
8057
8058 /* Product: '<S129>/Divide' */
8059 L4_MABX_B.Divide_l = L4_MABX_B.Subtract_jr / L4_MABX_B.Saturation_pu;
8060
8061 /* Product: '<S129>/Product2' */
8062 L4_MABX_B.Product2_kj = L4_MABX_B.Subtract_n * L4_MABX_B.Divide_l;
8063
8064 /* Sum: '<S129>/Subtract1' incorporates:
8065 * Constant: '<S129>/Constant1'
8066 */
8067 L4_MABX_B.Subtract1_p = L4_MABX_P.Constant1_Value - L4_MABX_B.Divide_l;
8068
8069 /* UnitDelay: '<S129>/Unit_Delay2' */
8070 L4_MABX_B.Unit_Delay2_d = L4_MABX_DW.Unit_Delay2_DSTATE_dy;
8071
8072 /* Product: '<S129>/Product1' */
8073 L4_MABX_B.Product1_c3 = L4_MABX_B.Subtract1_p * L4_MABX_B.Unit_Delay2_d;
8074
8075 /* Sum: '<S129>/Add1' */
8076 L4_MABX_B.Add1_i1 = L4_MABX_B.Product2_kj + L4_MABX_B.Product1_c3;
8077
8078 /* Outputs for Atomic SubSystem: '<S129>/If_Then_Else' */
8079 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_mu, L4_MABX_B.Subtract_n,
8080 L4_MABX_B.Add1_i1, &L4_MABX_B.If_Then_Else_ly);
8081
8082 /* End of Outputs for SubSystem: '<S129>/If_Then_Else' */
8083
8084 /* RelationalOperator: '<S114>/Compare' incorporates:
8085 * Constant: '<S114>/Constant'
8086 */
8087 L4_MABX_B.Compare_aa = (L4_MABX_B.Abs1_ap >
8088 L4_MABX_P.CompareToConstant1_const);
8089
8090 /* Outputs for Enabled SubSystem: '<S106>/Calculate_D_term' */
8091
8092 /* Constant: '<S96>/BRK_PRESS_DEM_KD_APV' incorporates:
8093 * Constant: '<S96>/BRK_PRESS_DEM_T_FILT_D_APV'
8094 */
8095 L4_MABX_Calculate_D_term(L4_MABX_B.Compare_aa,
8096 L4_MABX_P.BRK_PRESS_DEM_KD_APV_Value, L4_MABX_B.Subtract_jr,
8097 L4_MABX_B.LogicalOperator1_ax, L4_MABX_B.If_Then_Else_ly.Switch,
8098 L4_MABX_P.BRK_PRESS_DEM_T_FILT_D_APV_Valu, &L4_MABX_B.Calculate_D_term,
8099 &L4_MABX_DW.Calculate_D_term, &L4_MABX_P.Calculate_D_term);
8100
8101 /* End of Outputs for SubSystem: '<S106>/Calculate_D_term' */
8102
8103 /* Product: '<S112>/Product' incorporates:
8104 * Constant: '<S96>/BRK_PRESS_DEM_KP_APV'
8105 */
8106 L4_MABX_B.Product_iq = L4_MABX_P.BRK_PRESS_DEM_KP_APV_Value *
8107 L4_MABX_B.If_Then_Else_ly.Switch;
8108
8109 /* UnitDelay: '<S104>/Unit_Delay' */
8110 L4_MABX_B.Unit_Delay_ja = L4_MABX_DW.Unit_Delay_DSTATE_i;
8111
8112 /* RelationalOperator: '<S113>/Compare' incorporates:
8113 * Constant: '<S113>/Constant'
8114 */
8115 L4_MABX_B.Compare_jrp = (L4_MABX_B.Abs_k4 >
8116 L4_MABX_P.CompareToConstant_const);
8117
8118 /* Outputs for Enabled SubSystem: '<S106>/Calculate_I_term' */
8119
8120 /* Constant: '<S96>/BRK_PRESS_DEM_KI_APV' incorporates:
8121 * Constant: '<S96>/BRK_PRESS_DEM_AW_COND_INT_APV'
8122 * Constant: '<S96>/BRK_PRESS_DEM_AW_HYSTERESIS_APV'
8123 * Constant: '<S96>/CPV1'
8124 * Constant: '<S96>/CPV3'
8125 */
8126 L4_MABX_Calculate_I_term(L4_MABX_B.Compare_jrp, L4_MABX_B.Product_iq,
8127 L4_MABX_P.BRK_PRESS_DEM_KI_APV_Value, L4_MABX_B.Brake_appl_percent,
8128 L4_MABX_B.If_Then_Else_ly.Switch, L4_MABX_B.LogicalOperator1_ax,
8129 L4_MABX_B.Subtract_jr, L4_MABX_P.CPV3_Value,
8130 L4_MABX_P.BRK_PRESS_DEM_AW_COND_INT_APV_V,
8131 L4_MABX_P.BRK_PRESS_DEM_AW_HYSTERESIS_APV, L4_MABX_P.CPV1_Value_g,
8132 L4_MABX_B.Unit_Delay_ja, &L4_MABX_B.Calculate_I_term,
8133 &L4_MABX_DW.Calculate_I_term, &L4_MABX_P.Calculate_I_term);
8134
8135 /* End of Outputs for SubSystem: '<S106>/Calculate_I_term' */
8136
8137 /* RelationalOperator: '<S132>/min_relop' incorporates:
8138 * Constant: '<S132>/min_val'
8139 * Constant: '<S96>/CPV4'
8140 */
8141 L4_MABX_B.min_relop_p = (L4_MABX_P.CheckStaticLowerBound_min <=
8142 L4_MABX_P.CPV4_Value);
8143
8144 /* Assertion: '<S132>/Assertion' */
8145 utAssert(L4_MABX_B.min_relop_p);
8146
8147 /* Sum: '<S108>/Add' incorporates:
8148 * Constant: '<S96>/CPV3'
8149 */
8150 L4_MABX_B.Add_e = ((L4_MABX_B.Product_iq +
8151 L4_MABX_B.Calculate_I_term.If_Then_Else.Switch) +
8152 L4_MABX_B.Calculate_D_term.Subtract) +
8153 L4_MABX_P.CPV3_Value;
8154
8155 /* RelationalOperator: '<S135>/Relational Operator1' incorporates:
8156 * Constant: '<S96>/CPV6'
8157 */
8158 L4_MABX_B.RelationalOperator1_gi = (L4_MABX_B.Add_e >= L4_MABX_P.CPV6_Value);
8159
8160 /* RelationalOperator: '<S135>/Relational Operator' incorporates:
8161 * Constant: '<S96>/CPV'
8162 */
8163 L4_MABX_B.RelationalOperator_ba = (L4_MABX_B.Add_e <= L4_MABX_P.CPV_Value);
8164
8165 /* Outputs for Atomic SubSystem: '<S135>/If_Then_Else1' */
8166
8167 /* Constant: '<S96>/CPV' */
8168 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_ba, L4_MABX_P.CPV_Value,
8169 L4_MABX_B.Add_e, &L4_MABX_B.If_Then_Else1_bq);
8170
8171 /* End of Outputs for SubSystem: '<S135>/If_Then_Else1' */
8172
8173 /* Outputs for Atomic SubSystem: '<S135>/If_Then_Else' */
8174
8175 /* Constant: '<S96>/CPV6' */
8176 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_gi, L4_MABX_P.CPV6_Value,
8177 L4_MABX_B.If_Then_Else1_bq.Switch,
8178 &L4_MABX_B.If_Then_Else_nj);
8179
8180 /* End of Outputs for SubSystem: '<S135>/If_Then_Else' */
8181 } else {
8182 if (L4_MABX_DW.Bendix_2C2_brake_application_pr) {
8183 /* Disable for Enabled SubSystem: '<S106>/Calculate_D_term' */
8184 if (L4_MABX_DW.Calculate_D_term.Calculate_D_term_MODE) {
8185 L4_Calculate_D_term_Disable(&L4_MABX_B.Calculate_D_term,
8186 &L4_MABX_DW.Calculate_D_term, &L4_MABX_P.Calculate_D_term);
8187 }
8188
8189 /* End of Disable for SubSystem: '<S106>/Calculate_D_term' */
8190
8191 /* Disable for Enabled SubSystem: '<S106>/Calculate_I_term' */
8192 if (L4_MABX_DW.Calculate_I_term.Calculate_I_term_MODE) {
8193 L4_Calculate_I_term_Disable(&L4_MABX_B.Calculate_I_term,
8194 &L4_MABX_DW.Calculate_I_term, &L4_MABX_P.Calculate_I_term);
8195 }
8196
8197 /* End of Disable for SubSystem: '<S106>/Calculate_I_term' */
8198
8199 /* Disable for Outport: '<S96>/PID_output' */
8200 L4_MABX_B.If_Then_Else_nj.Switch = L4_MABX_P.PID_output_Y0;
8201 L4_MABX_DW.Bendix_2C2_brake_application_pr = false;
8202 }
8203 }
8204
8205 /* End of Outputs for SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' */
8206
8207 /* RelationalOperator: '<S374>/Compare' incorporates:
8208 * Constant: '<S374>/Constant'
8209 */
8210 L4_MABX_B.Compare_ey = (L4_MABX_B.SFunction1_o4_i3 ==
8211 L4_MABX_P.CompareToConstant9_const);
8212
8213 /* RelationalOperator: '<S371>/Compare' incorporates:
8214 * Constant: '<S371>/Constant'
8215 */
8216 L4_MABX_B.Compare_jb = (L4_MABX_B.SFunction1_o5_o ==
8217 L4_MABX_P.CompareToConstant10_const);
8218
8219 /* RelationalOperator: '<S372>/Compare' incorporates:
8220 * Constant: '<S372>/Constant'
8221 */
8222 L4_MABX_B.Compare_h = (L4_MABX_B.SFunction1_o6_n ==
8223 L4_MABX_P.CompareToConstant11_const);
8224
8225 /* RelationalOperator: '<S373>/Compare' incorporates:
8226 * Constant: '<S373>/Constant'
8227 */
8228 L4_MABX_B.Compare_bp = (L4_MABX_B.SFunction1_o7_c ==
8229 L4_MABX_P.CompareToConstant12_const);
8230
8231 /* Logic: '<S334>/Logical Operator2' */
8232 L4_MABX_B.LogicalOperator2_f5 = (L4_MABX_B.Compare_ey || L4_MABX_B.Compare_jb ||
8233 L4_MABX_B.Compare_h || L4_MABX_B.Compare_bp);
8234
8235 /* UnitDelay: '<S376>/Unit_Delay' */
8236 L4_MABX_B.Unit_Delay_ot = L4_MABX_DW.Unit_Delay_DSTATE_cx;
8237
8238 /* Logic: '<S376>/Logical Operator1' */
8239 L4_MABX_B.LogicalOperator1_jo = !L4_MABX_B.Unit_Delay_ot;
8240
8241 /* Logic: '<S376>/Logical Operator' */
8242 L4_MABX_B.LogicalOperator_f = (L4_MABX_B.LogicalOperator2_f5 &&
8243 L4_MABX_B.LogicalOperator1_jo);
8244
8245 /* UnitDelay: '<S377>/Unit_Delay' */
8246 L4_MABX_B.Unit_Delay_jz = L4_MABX_DW.Unit_Delay_DSTATE_d0;
8247
8248 /* Logic: '<S377>/Logical Operator1' */
8249 L4_MABX_B.LogicalOperator1_a = (L4_MABX_B.LogicalOperator_f ||
8250 L4_MABX_B.Unit_Delay_jz);
8251
8252 /* UnitDelay: '<S334>/Unit_Delay' */
8253 L4_MABX_B.Unit_Delay_k = L4_MABX_DW.Unit_Delay_DSTATE_e;
8254
8255 /* MinMax: '<S334>/MinMax' */
8256 DeltaTime = L4_MABX_B.Unit_Delay_k;
8257 PositionFinalLimited = L4_MABX_B.SFunction1_o1_os;
8258 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8259 PositionFinalLimited = DeltaTime;
8260 }
8261
8262 L4_MABX_B.MinMax_d = PositionFinalLimited;
8263
8264 /* End of MinMax: '<S334>/MinMax' */
8265
8266 /* Outputs for Atomic SubSystem: '<S334>/If_Then_Else4' */
8267
8268 /* Constant: '<S334>/STABILITY_ACTIVE_VSPD_TARGET_APV' incorporates:
8269 * Constant: '<S334>/Constant4'
8270 */
8271 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator2_f5,
8272 L4_MABX_P.STABILITY_ACTIVE_VSPD_TARGET_AP,
8273 L4_MABX_P.Constant4_Value_n, &L4_MABX_B.If_Then_Else4_h);
8274
8275 /* End of Outputs for SubSystem: '<S334>/If_Then_Else4' */
8276
8277 /* UnitDelay: '<S381>/FixPt Unit Delay2' */
8278 L4_MABX_B.FixPtUnitDelay2_b2 = L4_MABX_DW.FixPtUnitDelay2_DSTATE_a;
8279
8280 /* UnitDelay: '<S381>/FixPt Unit Delay1' */
8281 L4_MABX_B.Xold_h = L4_MABX_DW.FixPtUnitDelay1_DSTATE_h;
8282
8283 /* Switch: '<S381>/Init' */
8284 if (L4_MABX_B.FixPtUnitDelay2_b2 != 0) {
8285 L4_MABX_B.Init_i = L4_MABX_B.If_Then_Else4_h.Switch;
8286 } else {
8287 L4_MABX_B.Init_i = L4_MABX_B.Xold_h;
8288 }
8289
8290 /* End of Switch: '<S381>/Init' */
8291
8292 /* Abs: '<S377>/Abs' incorporates:
8293 * Constant: '<S334>/STABILITY_CTRL_SLEW_INC_APV'
8294 */
8295 L4_MABX_B.Abs_e = fabs(L4_MABX_P.STABILITY_CTRL_SLEW_INC_APV_Val);
8296
8297 /* DigitalClock: '<S378>/Digital Clock' */
8298 L4_MABX_B.DigitalClock = L4_MABX_M->Timing.t[0];
8299
8300 /* UnitDelay: '<S378>/Unit_Delay' */
8301 L4_MABX_B.Unit_Delay_d = L4_MABX_DW.Unit_Delay_DSTATE_m;
8302
8303 /* Sum: '<S378>/Subtract' */
8304 L4_MABX_B.Subtract_l = L4_MABX_B.DigitalClock - L4_MABX_B.Unit_Delay_d;
8305
8306 /* Product: '<S377>/Product1' */
8307 L4_MABX_B.Product1_hp = L4_MABX_B.Abs_e * L4_MABX_B.Subtract_l;
8308
8309 /* Sum: '<S377>/Add1' */
8310 L4_MABX_B.Add1_n = L4_MABX_B.Init_i + L4_MABX_B.Product1_hp;
8311
8312 /* MinMax: '<S377>/MinMax2' */
8313 DeltaTime = L4_MABX_B.If_Then_Else4_h.Switch;
8314 PositionFinalLimited = L4_MABX_B.Add1_n;
8315 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8316 PositionFinalLimited = DeltaTime;
8317 }
8318
8319 L4_MABX_B.MinMax2_g = PositionFinalLimited;
8320
8321 /* End of MinMax: '<S377>/MinMax2' */
8322
8323 /* Abs: '<S377>/Abs1' incorporates:
8324 * Constant: '<S334>/STABILITY_CTRL_SLEW_DEC_APV'
8325 */
8326 L4_MABX_B.Abs1_h = fabs(L4_MABX_P.STABILITY_CTRL_SLEW_DEC_APV_Val);
8327
8328 /* Product: '<S377>/Product2' */
8329 L4_MABX_B.Product2_c = L4_MABX_B.Subtract_l * L4_MABX_B.Abs1_h;
8330
8331 /* Sum: '<S377>/Subtract1' */
8332 L4_MABX_B.Subtract1_n0 = L4_MABX_B.Init_i - L4_MABX_B.Product2_c;
8333
8334 /* MinMax: '<S377>/MinMax1' */
8335 DeltaTime = L4_MABX_B.MinMax2_g;
8336 PositionFinalLimited = L4_MABX_B.Subtract1_n0;
8337 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8338 PositionFinalLimited = DeltaTime;
8339 }
8340
8341 L4_MABX_B.MinMax1_h = PositionFinalLimited;
8342
8343 /* End of MinMax: '<S377>/MinMax1' */
8344
8345 /* Outputs for Atomic SubSystem: '<S377>/If_Then_Else' */
8346 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_a, L4_MABX_B.MinMax_d,
8347 L4_MABX_B.MinMax1_h, &L4_MABX_B.If_Then_Else_m4);
8348
8349 /* End of Outputs for SubSystem: '<S377>/If_Then_Else' */
8350
8351 /* RelationalOperator: '<S362>/Compare' incorporates:
8352 * Constant: '<S362>/Constant'
8353 */
8354 L4_MABX_B.Compare_d = (L4_MABX_B.ACCDistanceAlertSignal ==
8355 L4_MABX_P.CompareToConstant3_const);
8356
8357 /* RelationalOperator: '<S363>/Compare' incorporates:
8358 * Constant: '<S363>/Constant'
8359 */
8360 L4_MABX_B.Compare_dv = (L4_MABX_B.ForwardCollisionWarning ==
8361 L4_MABX_P.CompareToConstant8_const);
8362
8363 /* Logic: '<S332>/Logical Operator1' */
8364 L4_MABX_B.LogicalOperator1_g = (L4_MABX_B.Compare_d || L4_MABX_B.Compare_dv);
8365
8366 /* UnitDelay: '<S365>/Unit_Delay' */
8367 L4_MABX_B.Unit_Delay_hz = L4_MABX_DW.Unit_Delay_DSTATE_iy;
8368
8369 /* Logic: '<S365>/Logical Operator1' */
8370 L4_MABX_B.LogicalOperator1_jp3 = !L4_MABX_B.Unit_Delay_hz;
8371
8372 /* Logic: '<S365>/Logical Operator' */
8373 L4_MABX_B.LogicalOperator_kf = (L4_MABX_B.LogicalOperator1_g &&
8374 L4_MABX_B.LogicalOperator1_jp3);
8375
8376 /* UnitDelay: '<S366>/Unit_Delay' */
8377 L4_MABX_B.Unit_Delay_c = L4_MABX_DW.Unit_Delay_DSTATE_mv;
8378
8379 /* Logic: '<S366>/Logical Operator1' */
8380 L4_MABX_B.LogicalOperator1_l = (L4_MABX_B.LogicalOperator_kf ||
8381 L4_MABX_B.Unit_Delay_c);
8382
8383 /* UnitDelay: '<S332>/Unit_Delay' */
8384 L4_MABX_B.Unit_Delay_n = L4_MABX_DW.Unit_Delay_DSTATE_gr;
8385
8386 /* MinMax: '<S332>/MinMax' */
8387 DeltaTime = L4_MABX_B.Unit_Delay_n;
8388 PositionFinalLimited = L4_MABX_B.SFunction1_o1_os;
8389 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8390 PositionFinalLimited = DeltaTime;
8391 }
8392
8393 L4_MABX_B.MinMax_n = PositionFinalLimited;
8394
8395 /* End of MinMax: '<S332>/MinMax' */
8396
8397 /* Outputs for Atomic SubSystem: '<S332>/If_Then_Else4' */
8398
8399 /* Constant: '<S332>/FCW_ACTIVE_VSPD_TARGET_APV' incorporates:
8400 * Constant: '<S332>/Constant4'
8401 */
8402 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_g,
8403 L4_MABX_P.FCW_ACTIVE_VSPD_TARGET_APV_Valu,
8404 L4_MABX_P.Constant4_Value_b, &L4_MABX_B.If_Then_Else4_e);
8405
8406 /* End of Outputs for SubSystem: '<S332>/If_Then_Else4' */
8407
8408 /* UnitDelay: '<S370>/FixPt Unit Delay2' */
8409 L4_MABX_B.FixPtUnitDelay2_pl = L4_MABX_DW.FixPtUnitDelay2_DSTATE_ip;
8410
8411 /* UnitDelay: '<S370>/FixPt Unit Delay1' */
8412 L4_MABX_B.Xold_fv = L4_MABX_DW.FixPtUnitDelay1_DSTATE_hq;
8413
8414 /* Switch: '<S370>/Init' */
8415 if (L4_MABX_B.FixPtUnitDelay2_pl != 0) {
8416 L4_MABX_B.Init_b = L4_MABX_B.If_Then_Else4_e.Switch;
8417 } else {
8418 L4_MABX_B.Init_b = L4_MABX_B.Xold_fv;
8419 }
8420
8421 /* End of Switch: '<S370>/Init' */
8422
8423 /* Abs: '<S366>/Abs' incorporates:
8424 * Constant: '<S332>/FCW_CTRL_SLEW_INC_APV'
8425 */
8426 L4_MABX_B.Abs_ez = fabs(L4_MABX_P.FCW_CTRL_SLEW_INC_APV_Value);
8427
8428 /* DigitalClock: '<S367>/Digital Clock' */
8429 L4_MABX_B.DigitalClock_b = L4_MABX_M->Timing.t[0];
8430
8431 /* UnitDelay: '<S367>/Unit_Delay' */
8432 L4_MABX_B.Unit_Delay_nx = L4_MABX_DW.Unit_Delay_DSTATE_b;
8433
8434 /* Sum: '<S367>/Subtract' */
8435 L4_MABX_B.Subtract_i = L4_MABX_B.DigitalClock_b - L4_MABX_B.Unit_Delay_nx;
8436
8437 /* Product: '<S366>/Product1' */
8438 L4_MABX_B.Product1_i = L4_MABX_B.Abs_ez * L4_MABX_B.Subtract_i;
8439
8440 /* Sum: '<S366>/Add1' */
8441 L4_MABX_B.Add1_b = L4_MABX_B.Init_b + L4_MABX_B.Product1_i;
8442
8443 /* MinMax: '<S366>/MinMax2' */
8444 DeltaTime = L4_MABX_B.If_Then_Else4_e.Switch;
8445 PositionFinalLimited = L4_MABX_B.Add1_b;
8446 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8447 PositionFinalLimited = DeltaTime;
8448 }
8449
8450 L4_MABX_B.MinMax2_k = PositionFinalLimited;
8451
8452 /* End of MinMax: '<S366>/MinMax2' */
8453
8454 /* Abs: '<S366>/Abs1' incorporates:
8455 * Constant: '<S332>/FCW_CTRL_SLEW_DEC_APV'
8456 */
8457 L4_MABX_B.Abs1_c = fabs(L4_MABX_P.FCW_CTRL_SLEW_DEC_APV_Value);
8458
8459 /* Product: '<S366>/Product2' */
8460 L4_MABX_B.Product2_n = L4_MABX_B.Subtract_i * L4_MABX_B.Abs1_c;
8461
8462 /* Sum: '<S366>/Subtract1' */
8463 L4_MABX_B.Subtract1_h = L4_MABX_B.Init_b - L4_MABX_B.Product2_n;
8464
8465 /* MinMax: '<S366>/MinMax1' */
8466 DeltaTime = L4_MABX_B.MinMax2_k;
8467 PositionFinalLimited = L4_MABX_B.Subtract1_h;
8468 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8469 PositionFinalLimited = DeltaTime;
8470 }
8471
8472 L4_MABX_B.MinMax1_jm = PositionFinalLimited;
8473
8474 /* End of MinMax: '<S366>/MinMax1' */
8475
8476 /* Outputs for Atomic SubSystem: '<S366>/If_Then_Else' */
8477 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_l, L4_MABX_B.MinMax_n,
8478 L4_MABX_B.MinMax1_jm, &L4_MABX_B.If_Then_Else_bf);
8479
8480 /* End of Outputs for SubSystem: '<S366>/If_Then_Else' */
8481
8482 /* RateTransition: '<S81>/TmpRTBAtSignal Conversion3Inport1' */
8483 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
8484 L4_MABX_B.pathSpdLimit_a = L4_MABX_DW.TmpRTBAtSignalConversion3Inport;
8485 }
8486
8487 /* MultiPortSwitch: '<S81>/Multiport Switch' incorporates:
8488 * Constant: '<S81>/LONG_SPEED_SRC_SELECTOR_APV'
8489 */
8490 switch (LONG_SPEED_SRC_SELECTOR_APV) {
8491 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_GPS_PATH:
8492 /* SignalConversion: '<S81>/Signal Conversion3' */
8493 L4_MABX_B.Vehicle_speed_abs_max_e = L4_MABX_B.pathSpdLimit_a;
8494 L4_MABX_B.Vehicle_speed_abs_max = L4_MABX_B.Vehicle_speed_abs_max_e;
8495 break;
8496
8497 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_OVERRIDE:
8498 /* SignalConversion: '<S81>/Signal Conversion8' incorporates:
8499 * Constant: '<S81>/VSPD_ABS_MAX_APV'
8500 */
8501 L4_MABX_B.Vehicle_speed_abs_max_j = L4_MABX_P.VSPD_ABS_MAX_APV_Value;
8502 L4_MABX_B.Vehicle_speed_abs_max = L4_MABX_B.Vehicle_speed_abs_max_j;
8503 break;
8504
8505 default:
8506 /* SignalConversion: '<S81>/Signal Conversion15' incorporates:
8507 * Constant: '<S81>/CPV1'
8508 */
8509 L4_MABX_B.Vehicle_speed_abs_max_g = L4_MABX_P.CPV1_Value;
8510 L4_MABX_B.Vehicle_speed_abs_max = L4_MABX_B.Vehicle_speed_abs_max_g;
8511 break;
8512 }
8513
8514 /* RelationalOperator: '<S328>/Compare' incorporates:
8515 * Constant: '<S328>/Constant'
8516 */
8517 L4_MABX_B.Compare_jr = (L4_MABX_B.SFunction1_o7_kk ==
8518 L4_MABX_P.Constant_Value_a);
8519
8520 /* RateTransition: '<S81>/TmpRTBAtSignal Conversion2Inport1' */
8521 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
8522 L4_MABX_B.distance_o = L4_MABX_DW.TmpRTBAtSignalConversion2Inport;
8523 }
8524
8525 /* MultiPortSwitch: '<S81>/Multiport Switch' incorporates:
8526 * Constant: '<S81>/LONG_SPEED_SRC_SELECTOR_APV'
8527 */
8528 switch (LONG_SPEED_SRC_SELECTOR_APV) {
8529 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_GPS_PATH:
8530 /* SignalConversion: '<S81>/Signal Conversion2' */
8531 L4_MABX_B.Distance_to_achieve_speed_tar_f = L4_MABX_B.distance_o;
8532 L4_MABX_B.Distance_to_achieve_speed_targe =
8533 L4_MABX_B.Distance_to_achieve_speed_tar_f;
8534 break;
8535
8536 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_OVERRIDE:
8537 /* SignalConversion: '<S81>/Signal Conversion7' incorporates:
8538 * Constant: '<S81>/DISTANCE_M'
8539 */
8540 L4_MABX_B.Distance_to_achieve_speed_tar_j = DISTANCE_M;
8541 L4_MABX_B.Distance_to_achieve_speed_targe =
8542 L4_MABX_B.Distance_to_achieve_speed_tar_j;
8543 break;
8544
8545 default:
8546 /* SignalConversion: '<S81>/Signal Conversion14' incorporates:
8547 * Constant: '<S81>/CPV'
8548 */
8549 L4_MABX_B.Distance_to_achieve_speed_tar_m = L4_MABX_P.CPV_Value_ia;
8550 L4_MABX_B.Distance_to_achieve_speed_targe =
8551 L4_MABX_B.Distance_to_achieve_speed_tar_m;
8552 break;
8553 }
8554
8555 /* UnitDelay: '<S329>/Delay Input1' */
8556 L4_MABX_B.Uk1[0] = L4_MABX_DW.DelayInput1_DSTATE[0];
8557 L4_MABX_B.Uk1[1] = L4_MABX_DW.DelayInput1_DSTATE[1];
8558
8559 /* RelationalOperator: '<S329>/FixPt Relational Operator' */
8560 L4_MABX_B.FixPtRelationalOperator_d[0] =
8561 (L4_MABX_B.Distance_to_achieve_speed_targe != L4_MABX_B.Uk1[0]);
8562 L4_MABX_B.FixPtRelationalOperator_d[1] = (L4_MABX_B.Vehicle_speed_target_o !=
8563 L4_MABX_B.Uk1[1]);
8564
8565 /* Logic: '<S81>/Logical Operator1' */
8566 L4_MABX_B.LogicalOperator1_ja = (L4_MABX_B.FixPtRelationalOperator_d[0] ||
8567 L4_MABX_B.FixPtRelationalOperator_d[1]);
8568
8569 /* Saturate: '<S331>/Saturation5' */
8570 DeltaTime = L4_MABX_B.SFunction1_o1_os;
8571 Time56 = L4_MABX_P.Saturation5_LowerSat;
8572 PositionFinalLimited = L4_MABX_P.Saturation5_UpperSat;
8573 if (DeltaTime > PositionFinalLimited) {
8574 L4_MABX_B.Saturation5 = PositionFinalLimited;
8575 } else if (DeltaTime < Time56) {
8576 L4_MABX_B.Saturation5 = Time56;
8577 } else {
8578 L4_MABX_B.Saturation5 = DeltaTime;
8579 }
8580
8581 /* End of Saturate: '<S331>/Saturation5' */
8582
8583 /* MinMax: '<S331>/MinMax6' incorporates:
8584 * Constant: '<S331>/MIN_VSPD_SIGMOID_INITIAL_KPH_APV'
8585 */
8586 DeltaTime = L4_MABX_B.Saturation5;
8587 PositionFinalLimited = L4_MABX_P.MIN_VSPD_SIGMOID_INITIAL_KPH_AP;
8588 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8589 PositionFinalLimited = DeltaTime;
8590 }
8591
8592 L4_MABX_B.MinMax6 = PositionFinalLimited;
8593
8594 /* End of MinMax: '<S331>/MinMax6' */
8595
8596 /* Gain: '<S331>/Gain1' */
8597 L4_MABX_B.Gain1_e = L4_MABX_P.Gain1_Gain_a * L4_MABX_B.MinMax6;
8598
8599 /* Saturate: '<S331>/Saturation4' */
8600 DeltaTime = L4_MABX_B.Vehicle_speed_target_o;
8601 Time56 = L4_MABX_P.Saturation4_LowerSat;
8602 PositionFinalLimited = L4_MABX_P.Saturation4_UpperSat;
8603 if (DeltaTime > PositionFinalLimited) {
8604 L4_MABX_B.VSPD_TARGET_KPH_APV_gu = PositionFinalLimited;
8605 } else if (DeltaTime < Time56) {
8606 L4_MABX_B.VSPD_TARGET_KPH_APV_gu = Time56;
8607 } else {
8608 L4_MABX_B.VSPD_TARGET_KPH_APV_gu = DeltaTime;
8609 }
8610
8611 /* End of Saturate: '<S331>/Saturation4' */
8612
8613 /* MinMax: '<S331>/MinMax1' incorporates:
8614 * Constant: '<S331>/MIN_VSPD_SIGMOID_FINAL_KPH_APV'
8615 */
8616 DeltaTime = L4_MABX_B.VSPD_TARGET_KPH_APV_gu;
8617 PositionFinalLimited = L4_MABX_P.MIN_VSPD_SIGMOID_FINAL_KPH_APV_;
8618 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8619 PositionFinalLimited = DeltaTime;
8620 }
8621
8622 L4_MABX_B.MinMax1_f = PositionFinalLimited;
8623
8624 /* End of MinMax: '<S331>/MinMax1' */
8625
8626 /* Gain: '<S331>/Gain2' */
8627 L4_MABX_B.Gain2 = L4_MABX_P.Gain2_Gain_k * L4_MABX_B.MinMax1_f;
8628
8629 /* Saturate: '<S331>/Saturation6' */
8630 DeltaTime = SPN1810_LongitudinalAcceleration;
8631 Time56 = L4_MABX_P.Saturation6_LowerSat;
8632 PositionFinalLimited = L4_MABX_P.Saturation6_UpperSat;
8633 if (DeltaTime > PositionFinalLimited) {
8634 L4_MABX_B.Saturation6 = PositionFinalLimited;
8635 } else if (DeltaTime < Time56) {
8636 L4_MABX_B.Saturation6 = Time56;
8637 } else {
8638 L4_MABX_B.Saturation6 = DeltaTime;
8639 }
8640
8641 /* End of Saturate: '<S331>/Saturation6' */
8642
8643 /* MultiPortSwitch: '<S81>/Multiport Switch' incorporates:
8644 * Constant: '<S81>/LONG_SPEED_SRC_SELECTOR_APV'
8645 */
8646 switch (LONG_SPEED_SRC_SELECTOR_APV) {
8647 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_GPS_PATH:
8648 /* SignalConversion: '<S81>/Signal Conversion10' incorporates:
8649 * Constant: '<S81>/CPV3'
8650 */
8651 L4_MABX_B.Acceleration_target_ms2_d = L4_MABX_P.CPV3_Value_l;
8652 L4_MABX_B.Acceleration_target_ms2 = L4_MABX_B.Acceleration_target_ms2_d;
8653 break;
8654
8655 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_OVERRIDE:
8656 /* SignalConversion: '<S81>/Signal Conversion5' incorporates:
8657 * Constant: '<S81>/VEH_ACCEL_TARGET_APV'
8658 */
8659 L4_MABX_B.Acceleration_target_ms2_h = L4_MABX_P.VEH_ACCEL_TARGET_APV_Value;
8660 L4_MABX_B.Acceleration_target_ms2 = L4_MABX_B.Acceleration_target_ms2_h;
8661 break;
8662
8663 default:
8664 /* SignalConversion: '<S81>/Signal Conversion11' incorporates:
8665 * Constant: '<S81>/CPV2'
8666 */
8667 L4_MABX_B.Acceleration_target_ms2_f = L4_MABX_P.CPV2_Value;
8668 L4_MABX_B.Acceleration_target_ms2 = L4_MABX_B.Acceleration_target_ms2_f;
8669 break;
8670 }
8671
8672 /* Saturate: '<S331>/Saturation7' */
8673 DeltaTime = L4_MABX_B.Acceleration_target_ms2;
8674 Time56 = L4_MABX_P.Saturation7_LowerSat;
8675 PositionFinalLimited = L4_MABX_P.Saturation7_UpperSat;
8676 if (DeltaTime > PositionFinalLimited) {
8677 L4_MABX_B.Saturation7 = PositionFinalLimited;
8678 } else if (DeltaTime < Time56) {
8679 L4_MABX_B.Saturation7 = Time56;
8680 } else {
8681 L4_MABX_B.Saturation7 = DeltaTime;
8682 }
8683
8684 /* End of Saturate: '<S331>/Saturation7' */
8685
8686 /* Saturate: '<S331>/Saturation1' incorporates:
8687 * Constant: '<S81>/VEH_JERK_INITIAL_APV'
8688 */
8689 DeltaTime = L4_MABX_P.VEH_JERK_INITIAL_APV_Value;
8690 Time56 = L4_MABX_P.Saturation1_LowerSat_b;
8691 PositionFinalLimited = L4_MABX_P.Saturation1_UpperSat_o;
8692 if (DeltaTime > PositionFinalLimited) {
8693 L4_MABX_B.Saturation1 = PositionFinalLimited;
8694 } else if (DeltaTime < Time56) {
8695 L4_MABX_B.Saturation1 = Time56;
8696 } else {
8697 L4_MABX_B.Saturation1 = DeltaTime;
8698 }
8699
8700 /* End of Saturate: '<S331>/Saturation1' */
8701
8702 /* MultiPortSwitch: '<S81>/Multiport Switch' incorporates:
8703 * Constant: '<S81>/LONG_SPEED_SRC_SELECTOR_APV'
8704 */
8705 switch (LONG_SPEED_SRC_SELECTOR_APV) {
8706 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_GPS_PATH:
8707 /* SignalConversion: '<S81>/Signal Conversion13' incorporates:
8708 * Constant: '<S81>/CPV4'
8709 */
8710 L4_MABX_B.Jerk_target_ms3_g = L4_MABX_P.CPV4_Value_k;
8711 L4_MABX_B.Jerk_target_ms3 = L4_MABX_B.Jerk_target_ms3_g;
8712 break;
8713
8714 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_OVERRIDE:
8715 /* SignalConversion: '<S81>/Signal Conversion6' incorporates:
8716 * Constant: '<S81>/VEH_JERK_TARGET_APV'
8717 */
8718 L4_MABX_B.Jerk_target_ms3_d = L4_MABX_P.VEH_JERK_TARGET_APV_Value;
8719 L4_MABX_B.Jerk_target_ms3 = L4_MABX_B.Jerk_target_ms3_d;
8720 break;
8721
8722 default:
8723 /* SignalConversion: '<S81>/Signal Conversion12' incorporates:
8724 * Constant: '<S81>/CPV5'
8725 */
8726 L4_MABX_B.Jerk_target_ms3_l = L4_MABX_P.CPV5_Value_n;
8727 L4_MABX_B.Jerk_target_ms3 = L4_MABX_B.Jerk_target_ms3_l;
8728 break;
8729 }
8730
8731 /* Saturate: '<S331>/Saturation2' */
8732 DeltaTime = L4_MABX_B.Jerk_target_ms3;
8733 Time56 = L4_MABX_P.Saturation2_LowerSat;
8734 PositionFinalLimited = L4_MABX_P.Saturation2_UpperSat;
8735 if (DeltaTime > PositionFinalLimited) {
8736 L4_MABX_B.Saturation2 = PositionFinalLimited;
8737 } else if (DeltaTime < Time56) {
8738 L4_MABX_B.Saturation2 = Time56;
8739 } else {
8740 L4_MABX_B.Saturation2 = DeltaTime;
8741 }
8742
8743 /* End of Saturate: '<S331>/Saturation2' */
8744
8745 /* Chart: '<S331>/VehicleSpeedSetpointDynamicCalculation' */
8746 /* Gateway: Controller/L4_Controller/Task_10ms/Vehicle_speed_target/Determine_sigmoid_vehicle_speed_profile/VehicleSpeedSetpointDynamicCalculation */
8747 /* During: Controller/L4_Controller/Task_10ms/Vehicle_speed_target/Determine_sigmoid_vehicle_speed_profile/VehicleSpeedSetpointDynamicCalculation */
8748 /* Entry Internal: Controller/L4_Controller/Task_10ms/Vehicle_speed_target/Determine_sigmoid_vehicle_speed_profile/VehicleSpeedSetpointDynamicCalculation */
8749 /* Transition: '<S346>:88' */
8750 if (L4_MABX_B.LogicalOperator1_ja) {
8751 /* Transition: '<S346>:89' */
8752 /* Transition: '<S346>:39' */
8753 PositionFinalLimited = L4_MABX_B.Distance_to_achieve_speed_targe;
8754 if ((0.001 > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8755 PositionFinalLimited = 0.001;
8756 }
8757
8758 Time56 = L4_MABX_B.Gain1_e;
8759 if ((0.1 > Time56) || rtIsNaN(Time56)) {
8760 L4_MABX_DW.VelocityInitialLimited = 0.1;
8761 } else {
8762 L4_MABX_DW.VelocityInitialLimited = Time56;
8763 }
8764
8765 Time56 = L4_MABX_B.Gain2;
8766 if ((0.1 > Time56) || rtIsNaN(Time56)) {
8767 L4_MABX_DW.VelocityFinalLimited = 0.1;
8768 } else {
8769 L4_MABX_DW.VelocityFinalLimited = Time56;
8770 }
8771
8772 L4_MABX_DW.TimeFinal = 2.0 * PositionFinalLimited /
8773 (L4_MABX_DW.VelocityInitialLimited + L4_MABX_DW.VelocityFinalLimited);
8774 Time56 = L4_MABX_DW.TimeFinal;
8775 if ((0.007 > Time56) || rtIsNaN(Time56)) {
8776 L4_MABX_DW.TimeFinal = 0.007;
8777 } else {
8778 L4_MABX_DW.TimeFinal = Time56;
8779 }
8780
8781 AccelerationAverage = (L4_MABX_DW.VelocityFinalLimited -
8782 L4_MABX_DW.VelocityInitialLimited) / L4_MABX_DW.TimeFinal;
8783 L4_MABX_DW.TimeFinal *= 2.0;
8784 if (L4_MABX_DW.VelocityFinalLimited > L4_MABX_DW.VelocityInitialLimited) {
8785 /* Transition: '<S346>:238' */
8786 /* Transition: '<S346>:240' */
8787 Time56 = L4_MABX_B.Saturation6;
8788 if ((AccelerationAverage < Time56) || rtIsNaN(Time56)) {
8789 Time56 = AccelerationAverage;
8790 }
8791
8792 if ((0.0 > Time56) || rtIsNaN(Time56)) {
8793 L4_MABX_DW.AccelerationInitialLimited = 0.0;
8794 } else {
8795 L4_MABX_DW.AccelerationInitialLimited = Time56;
8796 }
8797
8798 Time56 = L4_MABX_B.Saturation7;
8799 if ((AccelerationAverage < Time56) || rtIsNaN(Time56)) {
8800 Time56 = AccelerationAverage;
8801 }
8802
8803 if ((0.0 > Time56) || rtIsNaN(Time56)) {
8804 L4_MABX_DW.AccelerationFinalLimited = 0.0;
8805 } else {
8806 L4_MABX_DW.AccelerationFinalLimited = Time56;
8807 }
8808
8809 /* Transition: '<S346>:243' */
8810 } else {
8811 /* Transition: '<S346>:241' */
8812 Time56 = L4_MABX_B.Saturation6;
8813 if ((0.0 < Time56) || rtIsNaN(Time56)) {
8814 Time56 = 0.0;
8815 }
8816
8817 if ((AccelerationAverage > Time56) || rtIsNaN(Time56)) {
8818 L4_MABX_DW.AccelerationInitialLimited = AccelerationAverage;
8819 } else {
8820 L4_MABX_DW.AccelerationInitialLimited = Time56;
8821 }
8822
8823 Time56 = L4_MABX_B.Saturation7;
8824 if ((0.0 < Time56) || rtIsNaN(Time56)) {
8825 Time56 = 0.0;
8826 }
8827
8828 if ((AccelerationAverage > Time56) || rtIsNaN(Time56)) {
8829 L4_MABX_DW.AccelerationFinalLimited = AccelerationAverage;
8830 } else {
8831 L4_MABX_DW.AccelerationFinalLimited = Time56;
8832 }
8833 }
8834
8835 /* Transition: '<S346>:16' */
8836 DeltaTimeFinal = L4_MABX_DW.TimeFinal;
8837 for (starting_index = 1U; starting_index < 16; starting_index++) {
8838 /* Transition: '<S346>:14' */
8839 /* Transition: '<S346>:201' */
8840 DeltaTime = ((L4_MABX_DW.VelocityInitialLimited -
8841 L4_MABX_DW.VelocityFinalLimited) +
8842 L4_MABX_DW.AccelerationFinalLimited * L4_MABX_DW.TimeFinal) *
8843 2.0 / (L4_MABX_DW.TimeFinal * L4_MABX_DW.TimeFinal);
8844 if (L4_MABX_DW.VelocityFinalLimited > L4_MABX_DW.VelocityInitialLimited) {
8845 /* Transition: '<S346>:121' */
8846 /* Transition: '<S346>:116' */
8847 L4_MABX_DW.Jerk12 = L4_MABX_B.Saturation1;
8848 DeltaTime = fabs(DeltaTime);
8849 Time56 = L4_MABX_B.Saturation2;
8850 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
8851 Time56 = DeltaTime;
8852 }
8853
8854 L4_MABX_DW.Jerk56 = -Time56;
8855
8856 /* Transition: '<S346>:120' */
8857 } else {
8858 /* Transition: '<S346>:122' */
8859 L4_MABX_DW.Jerk12 = -L4_MABX_B.Saturation1;
8860 DeltaTime = fabs(DeltaTime);
8861 Time56 = L4_MABX_B.Saturation2;
8862 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
8863 L4_MABX_DW.Jerk56 = DeltaTime;
8864 } else {
8865 L4_MABX_DW.Jerk56 = Time56;
8866 }
8867 }
8868
8869 /* Transition: '<S346>:275' */
8870 L4_MABX_CalculateAcceleration34();
8871 if (fabs(L4_MABX_DW.Acceleration34 - AccelerationAverage) < 0.001) {
8872 /* Transition: '<S346>:141' */
8873 /* Transition: '<S346>:145' */
8874 L4_MABX_B.TimeVectorRaw[0] = 0.0;
8875 L4_MABX_B.TimeVectorRaw[1] = 0.001;
8876 L4_MABX_B.TimeVectorRaw[2] = 0.003;
8877 L4_MABX_B.TimeVectorRaw[3] = (L4_MABX_DW.TimeFinal - 0.002) - 0.001;
8878 L4_MABX_B.TimeVectorRaw[4] = (L4_MABX_DW.TimeFinal - 0.002) + 0.001;
8879 L4_MABX_B.TimeVectorRaw[5] = L4_MABX_DW.TimeFinal;
8880 for (i = 0; i < 6; i++) {
8881 L4_MABX_B.JerkVectorRaw[i] = 0.0;
8882 }
8883
8884 L4_MABX_B.AccelerationVectorRaw[0] = AccelerationAverage;
8885
8886 /* Transition: '<S346>:191' */
8887 /* Transition: '<S346>:303' */
8888 } else {
8889 /* Transition: '<S346>:298' */
8890 if (L4_MABX_DW.AlternateMethod) {
8891 /* Transition: '<S346>:300' */
8892 /* Transition: '<S346>:302' */
8893 Time56 = (L4_MABX_DW.AccelerationFinalLimited -
8894 L4_MABX_DW.Acceleration34) / L4_MABX_DW.Jerk56;
8895 if ((0.002 > Time56) || rtIsNaN(Time56)) {
8896 Time56 = 0.002;
8897 }
8898
8899 L4_MABX_B.TimeVectorRaw[0] = 0.0;
8900 L4_MABX_B.TimeVectorRaw[1] = 0.001;
8901 L4_MABX_B.TimeVectorRaw[2] = 0.003;
8902 L4_MABX_B.TimeVectorRaw[3] = (L4_MABX_DW.TimeFinal - Time56) - 0.001;
8903 L4_MABX_B.TimeVectorRaw[4] = (L4_MABX_DW.TimeFinal - Time56) + 0.001;
8904 L4_MABX_B.TimeVectorRaw[5] = L4_MABX_DW.TimeFinal;
8905 L4_MABX_B.JerkVectorRaw[0] = 0.0;
8906 L4_MABX_B.JerkVectorRaw[1] = 0.0;
8907 L4_MABX_B.JerkVectorRaw[2] = 0.0;
8908 L4_MABX_B.JerkVectorRaw[3] = 0.0;
8909 L4_MABX_B.JerkVectorRaw[4] = L4_MABX_DW.Jerk56;
8910 L4_MABX_B.JerkVectorRaw[5] = L4_MABX_DW.Jerk56;
8911 L4_MABX_B.AccelerationVectorRaw[0] = L4_MABX_DW.Acceleration34;
8912
8913 /* Transition: '<S346>:303' */
8914 } else {
8915 /* Transition: '<S346>:157' */
8916 DeltaTime = (L4_MABX_DW.Acceleration34 -
8917 L4_MABX_DW.AccelerationInitialLimited) /
8918 L4_MABX_DW.Jerk12;
8919 if ((0.002 > DeltaTime) || rtIsNaN(DeltaTime)) {
8920 DeltaTime = 0.002;
8921 }
8922
8923 Time56 = (L4_MABX_DW.AccelerationFinalLimited -
8924 L4_MABX_DW.Acceleration34) / L4_MABX_DW.Jerk56;
8925 if ((0.002 > Time56) || rtIsNaN(Time56)) {
8926 Time56 = 0.002;
8927 }
8928
8929 L4_MABX_B.TimeVectorRaw[0] = 0.0;
8930 L4_MABX_B.TimeVectorRaw[1] = DeltaTime - 0.001;
8931 L4_MABX_B.TimeVectorRaw[2] = DeltaTime + 0.001;
8932 L4_MABX_B.TimeVectorRaw[3] = (L4_MABX_DW.TimeFinal - Time56) - 0.001;
8933 L4_MABX_B.TimeVectorRaw[4] = (L4_MABX_DW.TimeFinal - Time56) + 0.001;
8934 L4_MABX_B.TimeVectorRaw[5] = L4_MABX_DW.TimeFinal;
8935 L4_MABX_B.JerkVectorRaw[0] = L4_MABX_DW.Jerk12;
8936 L4_MABX_B.JerkVectorRaw[1] = L4_MABX_DW.Jerk12;
8937 L4_MABX_B.JerkVectorRaw[2] = 0.0;
8938 L4_MABX_B.JerkVectorRaw[3] = 0.0;
8939 L4_MABX_B.JerkVectorRaw[4] = L4_MABX_DW.Jerk56;
8940 L4_MABX_B.JerkVectorRaw[5] = L4_MABX_DW.Jerk56;
8941 L4_MABX_B.AccelerationVectorRaw[0] =
8942 L4_MABX_DW.AccelerationInitialLimited;
8943 }
8944 }
8945
8946 /* Transition: '<S346>:29' */
8947 L4_MABX_B.VelocityVectorRaw[0] = L4_MABX_DW.VelocityInitialLimited;
8948 L4_MABX_B.PositionVectorRaw[0] = 0.0;
8949 for (j = 2U; j < 7; j++) {
8950 /* Transition: '<S346>:34' */
8951 /* Transition: '<S346>:36' */
8952 DeltaTime = L4_MABX_B.TimeVectorRaw[j - 1] - L4_MABX_B.TimeVectorRaw[j -
8953 2];
8954 L4_MABX_B.AccelerationVectorRaw[j - 1] = L4_MABX_B.JerkVectorRaw[j - 2] *
8955 DeltaTime + L4_MABX_B.AccelerationVectorRaw[j - 2];
8956 L4_MABX_B.VelocityVectorRaw[j - 1] = (L4_MABX_B.AccelerationVectorRaw[j
8957 - 2] * DeltaTime + L4_MABX_B.VelocityVectorRaw[j - 2]) +
8958 L4_MABX_B.JerkVectorRaw[j - 2] * 0.5 * (DeltaTime * DeltaTime);
8959 L4_MABX_B.PositionVectorRaw[j - 1] = ((L4_MABX_B.VelocityVectorRaw[j - 2]
8960 * DeltaTime + L4_MABX_B.PositionVectorRaw[j - 2]) +
8961 L4_MABX_B.AccelerationVectorRaw[j - 2] * 0.5 * (DeltaTime * DeltaTime))
8962 + L4_MABX_B.JerkVectorRaw[j - 2] / 6.0 * rt_powd_snf(DeltaTime, 3.0);
8963
8964 /* Transition: '<S346>:33' */
8965 }
8966
8967 /* Transition: '<S346>:37' */
8968 DeltaTimeFinal *= 0.5;
8969 if ((L4_MABX_B.PositionVectorRaw[5] - PositionFinalLimited < 0.0) &&
8970 (L4_MABX_B.VelocityVectorRaw[5] > 0.0)) {
8971 /* Transition: '<S346>:61' */
8972 /* Transition: '<S346>:62' */
8973 L4_MABX_DW.TimeFinal += DeltaTimeFinal;
8974
8975 /* Transition: '<S346>:64' */
8976 } else {
8977 /* Transition: '<S346>:63' */
8978 L4_MABX_DW.TimeFinal -= DeltaTimeFinal;
8979 }
8980
8981 /* Transition: '<S346>:60' */
8982 Time56 = L4_MABX_DW.TimeFinal;
8983 if ((0.007 > Time56) || rtIsNaN(Time56)) {
8984 L4_MABX_DW.TimeFinal = 0.007;
8985 } else {
8986 L4_MABX_DW.TimeFinal = Time56;
8987 }
8988
8989 /* Transition: '<S346>:17' */
8990 }
8991
8992 /* Transition: '<S346>:18' */
8993 /* Transition: '<S346>:91' */
8994 } else {
8995 /* Transition: '<S346>:90' */
8996 }
8997
8998 /* End of Chart: '<S331>/VehicleSpeedSetpointDynamicCalculation' */
8999
9000 /* Chart: '<S331>/TwentyPointVectorCalculation' */
9001 if (L4_MABX_B.LogicalOperator1_ja) {
9002 /* Transition: '<S345>:89' */
9003 /* Transition: '<S345>:39' */
9004 L4_MABX_B.TimeVector[0] = L4_MABX_B.TimeVectorRaw[0];
9005 L4_MABX_B.JerkVector[0] = L4_MABX_B.JerkVectorRaw[0];
9006 L4_MABX_B.AccelerationVector[0] = L4_MABX_B.AccelerationVectorRaw[0];
9007 L4_MABX_B.VelocityVector[0] = L4_MABX_B.VelocityVectorRaw[0];
9008 L4_MABX_B.PositionVector[0] = L4_MABX_B.PositionVectorRaw[0];
9009 PositionFinalLimited = (L4_MABX_B.TimeVectorRaw[1] -
9010 L4_MABX_B.TimeVectorRaw[0]) / 10.0;
9011 for (starting_index = 2U; starting_index < 11; starting_index++) {
9012 /* Transition: '<S345>:14' */
9013 /* Transition: '<S345>:101' */
9014 L4_MABX_B.TimeVector[starting_index - 1] =
9015 L4_MABX_B.TimeVector[starting_index - 2] + PositionFinalLimited;
9016 DeltaTime = L4_MABX_B.TimeVector[starting_index - 1] -
9017 L4_MABX_B.TimeVectorRaw[0];
9018 L4_MABX_B.JerkVector[starting_index - 1] = L4_MABX_B.JerkVectorRaw[0];
9019 L4_MABX_B.AccelerationVector[starting_index - 1] =
9020 L4_MABX_B.JerkVectorRaw[0] * DeltaTime +
9021 L4_MABX_B.AccelerationVectorRaw[0];
9022 L4_MABX_B.VelocityVector[starting_index - 1] =
9023 (L4_MABX_B.AccelerationVectorRaw[0] * DeltaTime +
9024 L4_MABX_B.VelocityVectorRaw[0]) + 0.5 * L4_MABX_B.JerkVectorRaw[0] *
9025 (DeltaTime * DeltaTime);
9026 L4_MABX_B.PositionVector[starting_index - 1] =
9027 ((L4_MABX_B.VelocityVectorRaw[0] * DeltaTime +
9028 L4_MABX_B.PositionVectorRaw[0]) + 0.5 *
9029 L4_MABX_B.AccelerationVectorRaw[0] * (DeltaTime * DeltaTime)) +
9030 L4_MABX_B.JerkVectorRaw[0] / 6.0 * rt_powd_snf(DeltaTime, 3.0);
9031 DeltaTime = L4_MABX_B.PositionVector[starting_index - 2] + 0.0001;
9032 Time56 = L4_MABX_B.PositionVector[starting_index - 1];
9033 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9034 Time56 = DeltaTime;
9035 }
9036
9037 L4_MABX_B.PositionVector[starting_index - 1] = Time56;
9038
9039 /* Transition: '<S345>:17' */
9040 }
9041
9042 /* Transition: '<S345>:110' */
9043 L4_MABX_B.TimeVector[10] = L4_MABX_B.TimeVectorRaw[1];
9044 L4_MABX_B.JerkVector[10] = L4_MABX_B.JerkVectorRaw[1];
9045 L4_MABX_B.AccelerationVector[10] = L4_MABX_B.AccelerationVectorRaw[1];
9046 L4_MABX_B.VelocityVector[10] = L4_MABX_B.VelocityVectorRaw[1];
9047 DeltaTime = L4_MABX_B.PositionVector[9] + 0.0001;
9048 Time56 = L4_MABX_B.PositionVectorRaw[1];
9049 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9050 Time56 = DeltaTime;
9051 }
9052
9053 L4_MABX_B.PositionVector[10] = Time56;
9054 L4_MABX_B.TimeVector[11] = L4_MABX_B.TimeVectorRaw[2];
9055 L4_MABX_B.JerkVector[11] = L4_MABX_B.JerkVectorRaw[2];
9056 L4_MABX_B.AccelerationVector[11] = L4_MABX_B.AccelerationVectorRaw[2];
9057 L4_MABX_B.VelocityVector[11] = L4_MABX_B.VelocityVectorRaw[2];
9058 DeltaTime = L4_MABX_B.PositionVector[10] + 0.0001;
9059 Time56 = L4_MABX_B.PositionVectorRaw[2];
9060 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9061 Time56 = DeltaTime;
9062 }
9063
9064 L4_MABX_B.PositionVector[11] = Time56;
9065 PositionFinalLimited = (L4_MABX_B.TimeVectorRaw[3] -
9066 L4_MABX_B.TimeVectorRaw[2]) / 10.0;
9067 for (starting_index = 13U; starting_index < 22; starting_index++) {
9068 /* Transition: '<S345>:127' */
9069 /* Transition: '<S345>:133' */
9070 L4_MABX_B.TimeVector[starting_index - 1] =
9071 L4_MABX_B.TimeVector[starting_index - 2] + PositionFinalLimited;
9072 DeltaTime = L4_MABX_B.TimeVector[starting_index - 1] -
9073 L4_MABX_B.TimeVectorRaw[2];
9074 L4_MABX_B.JerkVector[starting_index - 1] = L4_MABX_B.JerkVectorRaw[2];
9075 L4_MABX_B.AccelerationVector[starting_index - 1] =
9076 L4_MABX_B.JerkVectorRaw[2] * DeltaTime +
9077 L4_MABX_B.AccelerationVectorRaw[2];
9078 L4_MABX_B.VelocityVector[starting_index - 1] =
9079 (L4_MABX_B.AccelerationVectorRaw[2] * DeltaTime +
9080 L4_MABX_B.VelocityVectorRaw[2]) + 0.5 * L4_MABX_B.JerkVectorRaw[2] *
9081 (DeltaTime * DeltaTime);
9082 L4_MABX_B.PositionVector[starting_index - 1] =
9083 ((L4_MABX_B.VelocityVectorRaw[2] * DeltaTime +
9084 L4_MABX_B.PositionVectorRaw[2]) + 0.5 *
9085 L4_MABX_B.AccelerationVectorRaw[2] * (DeltaTime * DeltaTime)) +
9086 L4_MABX_B.JerkVectorRaw[2] / 6.0 * rt_powd_snf(DeltaTime, 3.0);
9087 DeltaTime = L4_MABX_B.PositionVector[starting_index - 2] + 0.0001;
9088 Time56 = L4_MABX_B.PositionVector[starting_index - 1];
9089 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9090 Time56 = DeltaTime;
9091 }
9092
9093 L4_MABX_B.PositionVector[starting_index - 1] = Time56;
9094
9095 /* Transition: '<S345>:131' */
9096 }
9097
9098 /* Transition: '<S345>:132' */
9099 L4_MABX_B.TimeVector[21] = L4_MABX_B.TimeVectorRaw[3];
9100 L4_MABX_B.JerkVector[21] = L4_MABX_B.JerkVectorRaw[3];
9101 L4_MABX_B.AccelerationVector[21] = L4_MABX_B.AccelerationVectorRaw[3];
9102 L4_MABX_B.VelocityVector[21] = L4_MABX_B.VelocityVectorRaw[3];
9103 DeltaTime = L4_MABX_B.PositionVector[20] + 0.0001;
9104 Time56 = L4_MABX_B.PositionVectorRaw[3];
9105 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9106 Time56 = DeltaTime;
9107 }
9108
9109 L4_MABX_B.PositionVector[21] = Time56;
9110 L4_MABX_B.TimeVector[22] = L4_MABX_B.TimeVectorRaw[4];
9111 L4_MABX_B.JerkVector[22] = L4_MABX_B.JerkVectorRaw[4];
9112 L4_MABX_B.AccelerationVector[22] = L4_MABX_B.AccelerationVectorRaw[4];
9113 L4_MABX_B.VelocityVector[22] = L4_MABX_B.VelocityVectorRaw[4];
9114 DeltaTime = L4_MABX_B.PositionVector[21] + 0.0001;
9115 Time56 = L4_MABX_B.PositionVectorRaw[4];
9116 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9117 Time56 = DeltaTime;
9118 }
9119
9120 L4_MABX_B.PositionVector[22] = Time56;
9121 PositionFinalLimited = (L4_MABX_B.TimeVectorRaw[5] -
9122 L4_MABX_B.TimeVectorRaw[4]) / 10.0;
9123 for (starting_index = 24U; starting_index < 33; starting_index++) {
9124 /* Transition: '<S345>:111' */
9125 /* Transition: '<S345>:113' */
9126 L4_MABX_B.TimeVector[starting_index - 1] =
9127 L4_MABX_B.TimeVector[starting_index - 2] + PositionFinalLimited;
9128 DeltaTime = L4_MABX_B.TimeVector[starting_index - 1] -
9129 L4_MABX_B.TimeVectorRaw[4];
9130 L4_MABX_B.JerkVector[starting_index - 1] = L4_MABX_B.JerkVectorRaw[4];
9131 L4_MABX_B.AccelerationVector[starting_index - 1] =
9132 L4_MABX_B.JerkVectorRaw[4] * DeltaTime +
9133 L4_MABX_B.AccelerationVectorRaw[4];
9134 L4_MABX_B.VelocityVector[starting_index - 1] =
9135 (L4_MABX_B.AccelerationVectorRaw[4] * DeltaTime +
9136 L4_MABX_B.VelocityVectorRaw[4]) + 0.5 * L4_MABX_B.JerkVectorRaw[4] *
9137 (DeltaTime * DeltaTime);
9138 L4_MABX_B.PositionVector[starting_index - 1] =
9139 ((L4_MABX_B.VelocityVectorRaw[4] * DeltaTime +
9140 L4_MABX_B.PositionVectorRaw[4]) + 0.5 *
9141 L4_MABX_B.AccelerationVectorRaw[4] * (DeltaTime * DeltaTime)) +
9142 L4_MABX_B.JerkVectorRaw[4] / 6.0 * rt_powd_snf(DeltaTime, 3.0);
9143 DeltaTime = L4_MABX_B.PositionVector[starting_index - 2] + 0.0001;
9144 Time56 = L4_MABX_B.PositionVector[starting_index - 1];
9145 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9146 Time56 = DeltaTime;
9147 }
9148
9149 L4_MABX_B.PositionVector[starting_index - 1] = Time56;
9150
9151 /* Transition: '<S345>:112' */
9152 }
9153
9154 /* Transition: '<S345>:114' */
9155 L4_MABX_B.TimeVector[32] = L4_MABX_B.TimeVectorRaw[5];
9156 L4_MABX_B.JerkVector[32] = L4_MABX_B.JerkVectorRaw[5];
9157 L4_MABX_B.AccelerationVector[32] = L4_MABX_B.AccelerationVectorRaw[5];
9158 L4_MABX_B.VelocityVector[32] = L4_MABX_B.VelocityVectorRaw[5];
9159 DeltaTime = L4_MABX_B.PositionVector[31] + 0.0001;
9160 Time56 = L4_MABX_B.PositionVectorRaw[5];
9161 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9162 Time56 = DeltaTime;
9163 }
9164
9165 L4_MABX_B.PositionVector[32] = Time56;
9166
9167 /* Transition: '<S345>:141' */
9168 } else {
9169 /* Transition: '<S345>:90' */
9170 }
9171
9172 /* End of Chart: '<S331>/TwentyPointVectorCalculation' */
9173
9174 /* Gain: '<S331>/Gain3' */
9175 /* Transition: '<S346>:93' */
9176 /* Gateway: Controller/L4_Controller/Task_10ms/Vehicle_speed_target/Determine_sigmoid_vehicle_speed_profile/TwentyPointVectorCalculation */
9177 /* During: Controller/L4_Controller/Task_10ms/Vehicle_speed_target/Determine_sigmoid_vehicle_speed_profile/TwentyPointVectorCalculation */
9178 /* Entry Internal: Controller/L4_Controller/Task_10ms/Vehicle_speed_target/Determine_sigmoid_vehicle_speed_profile/TwentyPointVectorCalculation */
9179 /* Transition: '<S345>:88' */
9180 /* Transition: '<S345>:93' */
9181 for (i = 0; i < 33; i++) {
9182 L4_MABX_B.Vehicle_speed_vector_kph[i] = L4_MABX_P.Gain3_Gain_l *
9183 L4_MABX_B.VelocityVector[i];
9184 }
9185
9186 /* End of Gain: '<S331>/Gain3' */
9187
9188 /* RelationalOperator: '<S348>/Compare' incorporates:
9189 * Constant: '<S348>/Constant'
9190 */
9191 for (i = 0; i < 33; i++) {
9192 L4_MABX_B.Compare_n[i] = (L4_MABX_B.Vehicle_speed_vector_kph[i] <
9193 L4_MABX_P.Constant_Value_n);
9194 }
9195
9196 /* End of RelationalOperator: '<S348>/Compare' */
9197
9198 /* Logic: '<S343>/Logical Operator' */
9199 zcEvent = L4_MABX_B.Compare_n[0];
9200 for (i = 0; i < 32; i++) {
9201 zcEvent = (zcEvent || L4_MABX_B.Compare_n[i + 1]);
9202 }
9203
9204 L4_MABX_B.f_vspd_output_less_than_zero = zcEvent;
9205
9206 /* End of Logic: '<S343>/Logical Operator' */
9207
9208 /* MinMax: '<S343>/MinMax3' */
9209 PositionFinalLimited = L4_MABX_B.Vehicle_speed_vector_kph[0];
9210 for (i = 0; i < 32; i++) {
9211 Time56 = L4_MABX_B.Vehicle_speed_vector_kph[i + 1];
9212 if (!((PositionFinalLimited < Time56) || rtIsNaN(Time56))) {
9213 PositionFinalLimited = Time56;
9214 }
9215 }
9216
9217 L4_MABX_B.MinMax3 = PositionFinalLimited;
9218
9219 /* End of MinMax: '<S343>/MinMax3' */
9220
9221 /* UnitDelay: '<S347>/Unit_Delay' */
9222 L4_MABX_B.Unit_Delay_f = L4_MABX_DW.Unit_Delay_DSTATE_bw;
9223
9224 /* Outputs for Atomic SubSystem: '<S347>/If_Then_Else' */
9225 L4_MABX_If_Then_Else_g(L4_MABX_B.LogicalOperator1_ja, L4_MABX_B.Saturation5,
9226 L4_MABX_B.Unit_Delay_f, &L4_MABX_B.If_Then_Else_og);
9227
9228 /* End of Outputs for SubSystem: '<S347>/If_Then_Else' */
9229
9230 /* MinMax: '<S343>/MinMax5' */
9231 DeltaTime = L4_MABX_B.If_Then_Else_og.Switch;
9232 PositionFinalLimited = L4_MABX_B.VSPD_TARGET_KPH_APV_gu;
9233 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9234 PositionFinalLimited = DeltaTime;
9235 }
9236
9237 L4_MABX_B.MinMax5 = PositionFinalLimited;
9238
9239 /* End of MinMax: '<S343>/MinMax5' */
9240
9241 /* Sum: '<S343>/Subtract' */
9242 L4_MABX_B.Subtract_a = L4_MABX_B.MinMax3 - L4_MABX_B.MinMax5;
9243
9244 /* Abs: '<S343>/Abs' */
9245 L4_MABX_B.Abs_m = fabs(L4_MABX_B.Subtract_a);
9246
9247 /* RelationalOperator: '<S343>/Relational Operator' incorporates:
9248 * Constant: '<S343>/MIN_VSPD_DELTA_THRESHOLD_KPH_APV'
9249 */
9250 L4_MABX_B.RelationalOperator_fg = (L4_MABX_B.Abs_m >
9251 L4_MABX_P.MIN_VSPD_DELTA_THRESHOLD_KPH_AP);
9252
9253 /* Logic: '<S349>/Logical Operator3' incorporates:
9254 * Constant: '<S343>/CPV'
9255 */
9256 L4_MABX_B.LogicalOperator3_o = !L4_MABX_P.CPV_Value_a;
9257
9258 /* UnitDelay: '<S349>/Unit_Delay' */
9259 L4_MABX_B.Unit_Delay_ag = L4_MABX_DW.Unit_Delay_DSTATE_k;
9260
9261 /* Logic: '<S349>/Logical Operator' */
9262 L4_MABX_B.LogicalOperator_ob = (L4_MABX_B.LogicalOperator3_o &&
9263 L4_MABX_B.Unit_Delay_ag);
9264
9265 /* Logic: '<S349>/Logical Operator1' */
9266 L4_MABX_B.LogicalOperator1_p = (L4_MABX_B.LogicalOperator1_ja ||
9267 L4_MABX_B.LogicalOperator_ob);
9268
9269 /* Logic: '<S343>/Logical Operator2' */
9270 L4_MABX_B.f_vspd_min_delta_greater_than_t = (L4_MABX_B.RelationalOperator_fg &&
9271 L4_MABX_B.LogicalOperator1_p);
9272
9273 /* MinMax: '<S343>/MinMax4' */
9274 PositionFinalLimited = L4_MABX_B.Vehicle_speed_vector_kph[0];
9275 for (i = 0; i < 32; i++) {
9276 Time56 = L4_MABX_B.Vehicle_speed_vector_kph[i + 1];
9277 if (!((PositionFinalLimited > Time56) || rtIsNaN(Time56))) {
9278 PositionFinalLimited = Time56;
9279 }
9280 }
9281
9282 L4_MABX_B.MinMax4 = PositionFinalLimited;
9283
9284 /* End of MinMax: '<S343>/MinMax4' */
9285
9286 /* MinMax: '<S343>/MinMax6' */
9287 DeltaTime = L4_MABX_B.If_Then_Else_og.Switch;
9288 PositionFinalLimited = L4_MABX_B.VSPD_TARGET_KPH_APV_gu;
9289 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9290 PositionFinalLimited = DeltaTime;
9291 }
9292
9293 L4_MABX_B.MinMax6_j = PositionFinalLimited;
9294
9295 /* End of MinMax: '<S343>/MinMax6' */
9296
9297 /* Sum: '<S343>/Subtract1' */
9298 L4_MABX_B.Subtract1_ca = L4_MABX_B.MinMax4 - L4_MABX_B.MinMax6_j;
9299
9300 /* Abs: '<S343>/Abs1' */
9301 L4_MABX_B.Abs1_h5 = fabs(L4_MABX_B.Subtract1_ca);
9302
9303 /* RelationalOperator: '<S343>/Relational Operator1' incorporates:
9304 * Constant: '<S343>/MAX_VSPD_DELTA_THRESHOLD_KPH_APV'
9305 */
9306 L4_MABX_B.RelationalOperator1_g4 = (L4_MABX_B.Abs1_h5 >
9307 L4_MABX_P.MAX_VSPD_DELTA_THRESHOLD_KPH_AP);
9308
9309 /* Logic: '<S343>/Logical Operator1' */
9310 L4_MABX_B.f_vspd_max_delta_greater_than_t = (L4_MABX_B.RelationalOperator1_g4 &&
9311 L4_MABX_B.LogicalOperator1_p);
9312
9313 /* MinMax: '<S343>/MinMax8' */
9314 PositionFinalLimited = L4_MABX_B.AccelerationVector[0];
9315 for (i = 0; i < 32; i++) {
9316 Time56 = L4_MABX_B.AccelerationVector[i + 1];
9317 if (!((PositionFinalLimited > Time56) || rtIsNaN(Time56))) {
9318 PositionFinalLimited = Time56;
9319 }
9320 }
9321
9322 L4_MABX_B.MinMax8 = PositionFinalLimited;
9323
9324 /* End of MinMax: '<S343>/MinMax8' */
9325
9326 /* RelationalOperator: '<S343>/Relational Operator2' incorporates:
9327 * Constant: '<S343>/ACCEL_RATE_ABS_MAX_THRESHOLD_MS2_APV'
9328 */
9329 L4_MABX_B.f_accel_rate_greater_than_thres = (L4_MABX_B.MinMax8 >
9330 L4_MABX_P.ACCEL_RATE_ABS_MAX_THRESHOLD_MS);
9331
9332 /* MinMax: '<S343>/MinMax7' */
9333 PositionFinalLimited = L4_MABX_B.AccelerationVector[0];
9334 for (i = 0; i < 32; i++) {
9335 Time56 = L4_MABX_B.AccelerationVector[i + 1];
9336 if (!((PositionFinalLimited < Time56) || rtIsNaN(Time56))) {
9337 PositionFinalLimited = Time56;
9338 }
9339 }
9340
9341 L4_MABX_B.MinMax7 = PositionFinalLimited;
9342
9343 /* End of MinMax: '<S343>/MinMax7' */
9344
9345 /* RelationalOperator: '<S343>/Relational Operator3' incorporates:
9346 * Constant: '<S343>/ACCEL_RATE_ABS_MIN_THRESHOLD_MS2_APV'
9347 */
9348 L4_MABX_B.f_decel_rate_greater_than_thres = (L4_MABX_B.MinMax7 <
9349 L4_MABX_P.ACCEL_RATE_ABS_MIN_THRESHOLD_MS);
9350
9351 /* MinMax: '<S343>/MinMax10' */
9352 PositionFinalLimited = L4_MABX_B.JerkVector[0];
9353 for (i = 0; i < 32; i++) {
9354 Time56 = L4_MABX_B.JerkVector[i + 1];
9355 if (!((PositionFinalLimited > Time56) || rtIsNaN(Time56))) {
9356 PositionFinalLimited = Time56;
9357 }
9358 }
9359
9360 L4_MABX_B.MinMax10 = PositionFinalLimited;
9361
9362 /* End of MinMax: '<S343>/MinMax10' */
9363
9364 /* RelationalOperator: '<S343>/Relational Operator4' incorporates:
9365 * Constant: '<S343>/JERK_RATE_ABS_MAX_THRESHOLD_MS3_APV'
9366 */
9367 L4_MABX_B.f_jerk_rate_greater_than_thresh = (L4_MABX_B.MinMax10 >
9368 L4_MABX_P.JERK_RATE_ABS_MAX_THRESHOLD_MS3);
9369
9370 /* MinMax: '<S343>/MinMax9' */
9371 PositionFinalLimited = L4_MABX_B.JerkVector[0];
9372 for (i = 0; i < 32; i++) {
9373 Time56 = L4_MABX_B.JerkVector[i + 1];
9374 if (!((PositionFinalLimited < Time56) || rtIsNaN(Time56))) {
9375 PositionFinalLimited = Time56;
9376 }
9377 }
9378
9379 L4_MABX_B.MinMax9 = PositionFinalLimited;
9380
9381 /* End of MinMax: '<S343>/MinMax9' */
9382
9383 /* RelationalOperator: '<S343>/Relational Operator5' incorporates:
9384 * Constant: '<S343>/JERK_RATE_ABS_MIN_THRESHOLD_MS3_APV'
9385 */
9386 L4_MABX_B.f_jerk_rate_greater_than_thre_n = (L4_MABX_B.MinMax9 <
9387 L4_MABX_P.JERK_RATE_ABS_MIN_THRESHOLD_MS3);
9388
9389 /* Sum: '<S343>/Subtract2' */
9390 L4_MABX_B.Subtract2 = L4_MABX_B.Distance_to_achieve_speed_targe -
9391 L4_MABX_B.PositionVector[32];
9392
9393 /* Abs: '<S343>/Abs2' */
9394 L4_MABX_B.Abs2 = fabs(L4_MABX_B.Subtract2);
9395
9396 /* RelationalOperator: '<S343>/Relational Operator6' incorporates:
9397 * Constant: '<S343>/MAX_DISTANCE_DELTA_THRESHOLD_M_APV'
9398 */
9399 L4_MABX_B.RelationalOperator6_i = (L4_MABX_B.Abs2 >
9400 L4_MABX_P.MAX_DISTANCE_DELTA_THRESHOLD_M_);
9401
9402 /* Logic: '<S343>/Logical Operator3' */
9403 L4_MABX_B.f_distance_max_delta_greater_th = (L4_MABX_B.RelationalOperator6_i &&
9404 L4_MABX_B.LogicalOperator1_p);
9405
9406 /* Logic: '<S343>/Logical Operator4' */
9407 L4_MABX_B.F_Inhibit_sigmoid_vector_shapin =
9408 (L4_MABX_B.f_vspd_output_less_than_zero ||
9409 L4_MABX_B.f_vspd_min_delta_greater_than_t ||
9410 L4_MABX_B.f_vspd_max_delta_greater_than_t ||
9411 L4_MABX_B.f_accel_rate_greater_than_thres ||
9412 L4_MABX_B.f_decel_rate_greater_than_thres ||
9413 L4_MABX_B.f_jerk_rate_greater_than_thresh ||
9414 L4_MABX_B.f_jerk_rate_greater_than_thre_n ||
9415 L4_MABX_B.f_distance_max_delta_greater_th);
9416
9417 /* Logic: '<S81>/Logical Operator' */
9418 L4_MABX_B.LogicalOperator_nd = !L4_MABX_B.F_Inhibit_sigmoid_vector_shapin;
9419
9420 /* Logic: '<S81>/Logical Operator2' */
9421 L4_MABX_B.LogicalOperator2_ft = (L4_MABX_B.Compare_jr &&
9422 L4_MABX_B.LogicalOperator_nd);
9423
9424 /* RelationalOperator: '<S344>/Relational Operator3' incorporates:
9425 * Constant: '<S344>/CPV1'
9426 */
9427 L4_MABX_B.RelationalOperator3_k = (L4_MABX_B.Saturation5 <
9428 L4_MABX_P.CPV1_Value_i);
9429
9430 /* RelationalOperator: '<S344>/Relational Operator1' incorporates:
9431 * Constant: '<S331>/MIN_VSPD_SIGMOID_INITIAL_KPH_APV'
9432 */
9433 L4_MABX_B.RelationalOperator1_h = (L4_MABX_B.If_Then_Else_og.Switch <
9434 L4_MABX_P.MIN_VSPD_SIGMOID_INITIAL_KPH_AP);
9435
9436 /* Logic: '<S344>/Logical Operator' */
9437 L4_MABX_B.LogicalOperator_da = (L4_MABX_B.RelationalOperator3_k ||
9438 L4_MABX_B.RelationalOperator1_h);
9439
9440 /* RelationalOperator: '<S344>/Relational Operator2' incorporates:
9441 * Constant: '<S331>/MIN_VSPD_SIGMOID_FINAL_KPH_APV'
9442 */
9443 L4_MABX_B.RelationalOperator2_g = (L4_MABX_B.VSPD_TARGET_KPH_APV_gu <
9444 L4_MABX_P.MIN_VSPD_SIGMOID_FINAL_KPH_APV_);
9445
9446 /* Logic: '<S344>/Logical Operator2' */
9447 L4_MABX_B.F_set_max_distance_accumulated = (L4_MABX_B.LogicalOperator_da &&
9448 L4_MABX_B.RelationalOperator2_g);
9449
9450 /* UnitDelay: '<S358>/FixPt Unit Delay2' */
9451 L4_MABX_B.FixPtUnitDelay2_o = L4_MABX_DW.FixPtUnitDelay2_DSTATE_fh;
9452
9453 /* Logic: '<S358>/FixPt Logical Operator' */
9454 L4_MABX_B.FixPtLogicalOperator = (uint8_T)(L4_MABX_B.LogicalOperator1_ja ||
9455 (L4_MABX_B.FixPtUnitDelay2_o != 0));
9456
9457 /* UnitDelay: '<S358>/FixPt Unit Delay1' */
9458 L4_MABX_B.Xold_pg = L4_MABX_DW.FixPtUnitDelay1_DSTATE_l;
9459
9460 /* Switch: '<S358>/Init' incorporates:
9461 * Constant: '<S353>/CPV'
9462 */
9463 if (L4_MABX_B.FixPtLogicalOperator != 0) {
9464 L4_MABX_B.Init_h = L4_MABX_P.CPV_Value_h;
9465 } else {
9466 L4_MABX_B.Init_h = L4_MABX_B.Xold_pg;
9467 }
9468
9469 /* End of Switch: '<S358>/Init' */
9470
9471 /* Gain: '<S344>/Gain1' */
9472 L4_MABX_B.Gain1_c = L4_MABX_P.Gain1_Gain_k * L4_MABX_B.Saturation5;
9473
9474 /* DigitalClock: '<S356>/Digital Clock' */
9475 L4_MABX_B.DigitalClock_f = L4_MABX_M->Timing.t[0];
9476
9477 /* UnitDelay: '<S356>/Unit_Delay' */
9478 L4_MABX_B.Unit_Delay_e = L4_MABX_DW.Unit_Delay_DSTATE_ps;
9479
9480 /* Sum: '<S356>/Subtract' */
9481 L4_MABX_B.Subtract_b = L4_MABX_B.DigitalClock_f - L4_MABX_B.Unit_Delay_e;
9482
9483 /* Product: '<S353>/Product1' incorporates:
9484 * Constant: '<S352>/CPV1'
9485 */
9486 L4_MABX_B.Product1_aq = L4_MABX_P.CPV1_Value_e * L4_MABX_B.Gain1_c *
9487 L4_MABX_B.Subtract_b;
9488
9489 /* Sum: '<S353>/Add' */
9490 L4_MABX_B.Add_h = L4_MABX_B.Init_h + L4_MABX_B.Product1_aq;
9491
9492 /* MinMax: '<S353>/MinMax' */
9493 DeltaTime = L4_MABX_B.Distance_to_achieve_speed_targe;
9494 PositionFinalLimited = L4_MABX_B.Add_h;
9495 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9496 PositionFinalLimited = DeltaTime;
9497 }
9498
9499 L4_MABX_B.MinMax_a = PositionFinalLimited;
9500
9501 /* End of MinMax: '<S353>/MinMax' */
9502
9503 /* Outputs for Atomic SubSystem: '<S353>/If_Then_Else' */
9504 L4_MABX_If_Then_Else_g(L4_MABX_B.F_set_max_distance_accumulated,
9505 L4_MABX_B.Distance_to_achieve_speed_targe, L4_MABX_B.MinMax_a,
9506 &L4_MABX_B.If_Then_Else_gf);
9507
9508 /* End of Outputs for SubSystem: '<S353>/If_Then_Else' */
9509
9510 /* RelationalOperator: '<S344>/Relational Operator' */
9511 L4_MABX_B.RelationalOperator_l = (L4_MABX_B.If_Then_Else_gf.Switch ==
9512 L4_MABX_B.Distance_to_achieve_speed_targe);
9513
9514 /* S-Function (sfix_look1_dyn): '<S344>/Lookup Table Dynamic' */
9515 /* Dynamic Look-Up Table Block: '<S344>/Lookup Table Dynamic'
9516 * Input0 Data Type: Floating Point real_T
9517 * Input1 Data Type: Floating Point real_T
9518 * Input2 Data Type: Floating Point real_T
9519 * Output0 Data Type: Floating Point real_T
9520 * Lookup Method: Linear_Endpoint
9521 *
9522 */
9523 LookUp_real_T_real_T( &(L4_MABX_B.LookupTableDynamic),
9524 &L4_MABX_B.Vehicle_speed_vector_kph[0],
9525 L4_MABX_B.If_Then_Else_gf.Switch,
9526 &L4_MABX_B.PositionVector[0], 32U);
9527
9528 /* Outputs for Atomic SubSystem: '<S344>/If_Then_Else' */
9529 L4_MABX_If_Then_Else_g(L4_MABX_B.RelationalOperator_l,
9530 L4_MABX_B.VSPD_TARGET_KPH_APV_gu, L4_MABX_B.LookupTableDynamic,
9531 &L4_MABX_B.If_Then_Else_j);
9532
9533 /* End of Outputs for SubSystem: '<S344>/If_Then_Else' */
9534
9535 /* UnitDelay: '<S336>/Delay Input1' */
9536 L4_MABX_B.Uk1_k[0] = L4_MABX_DW.DelayInput1_DSTATE_f[0];
9537 L4_MABX_B.Uk1_k[1] = L4_MABX_DW.DelayInput1_DSTATE_f[1];
9538
9539 /* RelationalOperator: '<S336>/FixPt Relational Operator' */
9540 L4_MABX_B.FixPtRelationalOperator_p[0] =
9541 (L4_MABX_B.Distance_to_achieve_speed_targe != L4_MABX_B.Uk1_k[0]);
9542 L4_MABX_B.FixPtRelationalOperator_p[1] = (L4_MABX_B.Vehicle_speed_target_o !=
9543 L4_MABX_B.Uk1_k[1]);
9544
9545 /* Logic: '<S330>/Logical Operator' */
9546 L4_MABX_B.LogicalOperator_g = (L4_MABX_B.FixPtRelationalOperator_p[0] ||
9547 L4_MABX_B.FixPtRelationalOperator_p[1]);
9548
9549 /* UnitDelay: '<S338>/Unit_Delay' */
9550 L4_MABX_B.Unit_Delay_ls = L4_MABX_DW.Unit_Delay_DSTATE_l;
9551
9552 /* Logic: '<S338>/Logical Operator1' */
9553 L4_MABX_B.LogicalOperator1_lp = (L4_MABX_B.LogicalOperator_g ||
9554 L4_MABX_B.Unit_Delay_ls);
9555
9556 /* UnitDelay: '<S342>/FixPt Unit Delay2' */
9557 L4_MABX_B.FixPtUnitDelay2_n = L4_MABX_DW.FixPtUnitDelay2_DSTATE_c;
9558
9559 /* UnitDelay: '<S342>/FixPt Unit Delay1' */
9560 L4_MABX_B.Xold_o = L4_MABX_DW.FixPtUnitDelay1_DSTATE_ej;
9561
9562 /* Switch: '<S342>/Init' */
9563 if (L4_MABX_B.FixPtUnitDelay2_n != 0) {
9564 L4_MABX_B.Init_pn = L4_MABX_B.Vehicle_speed_target_o;
9565 } else {
9566 L4_MABX_B.Init_pn = L4_MABX_B.Xold_o;
9567 }
9568
9569 /* End of Switch: '<S342>/Init' */
9570
9571 /* UnitDelay: '<S337>/Unit_Delay' */
9572 L4_MABX_B.Vehicle_speed_target_c = L4_MABX_DW.Unit_Delay_1_DSTATE_j;
9573 L4_MABX_B.Vehicle_speed = L4_MABX_DW.Unit_Delay_2_DSTATE_e;
9574 L4_MABX_B.Distance_m = L4_MABX_DW.Unit_Delay_3_DSTATE_j;
9575
9576 /* Outputs for Atomic SubSystem: '<S337>/If_Then_Else' */
9577 L4_MABX_If_Then_Else_m(L4_MABX_B.LogicalOperator_g,
9578 L4_MABX_B.Vehicle_speed_target_o, L4_MABX_B.SFunction1_o1_os,
9579 L4_MABX_B.Distance_to_achieve_speed_targe, L4_MABX_B.Vehicle_speed_target_c,
9580 L4_MABX_B.Vehicle_speed, L4_MABX_B.Distance_m, &L4_MABX_B.If_Then_Else_mm);
9581
9582 /* End of Outputs for SubSystem: '<S337>/If_Then_Else' */
9583
9584 /* Sum: '<S337>/Subtract' */
9585 L4_MABX_B.err = L4_MABX_B.If_Then_Else_mm.Vehicle_speed -
9586 L4_MABX_B.If_Then_Else_mm.Vehicle_speed_target;
9587
9588 /* Abs: '<S337>/Abs2' */
9589 L4_MABX_B.err_abs = fabs(L4_MABX_B.err);
9590
9591 /* Gain: '<S337>/Gain2' */
9592 L4_MABX_B.Gain2_k = L4_MABX_P.Gain2_Gain_l *
9593 L4_MABX_B.If_Then_Else_mm.Vehicle_speed;
9594
9595 /* Saturate: '<S337>/Saturation4' */
9596 DeltaTime = L4_MABX_B.Gain2_k;
9597 Time56 = L4_MABX_P.Saturation4_LowerSat_e;
9598 PositionFinalLimited = L4_MABX_P.Saturation4_UpperSat_a;
9599 if (DeltaTime > PositionFinalLimited) {
9600 L4_MABX_B.Saturation4 = PositionFinalLimited;
9601 } else if (DeltaTime < Time56) {
9602 L4_MABX_B.Saturation4 = Time56;
9603 } else {
9604 L4_MABX_B.Saturation4 = DeltaTime;
9605 }
9606
9607 /* End of Saturate: '<S337>/Saturation4' */
9608
9609 /* Product: '<S337>/Divide2' */
9610 L4_MABX_B.time_to_target_vspd_secs = L4_MABX_B.If_Then_Else_mm.Distance_m /
9611 L4_MABX_B.Saturation4;
9612
9613 /* DigitalClock: '<S335>/Digital Clock' */
9614 L4_MABX_B.DigitalClock_p = L4_MABX_M->Timing.t[0];
9615
9616 /* UnitDelay: '<S335>/Unit_Delay' */
9617 L4_MABX_B.Unit_Delay_b = L4_MABX_DW.Unit_Delay_DSTATE_f;
9618
9619 /* Sum: '<S335>/Subtract' */
9620 L4_MABX_B.Subtract_g = L4_MABX_B.DigitalClock_p - L4_MABX_B.Unit_Delay_b;
9621
9622 /* MinMax: '<S337>/MinMax3' */
9623 DeltaTime = L4_MABX_B.time_to_target_vspd_secs;
9624 PositionFinalLimited = L4_MABX_B.Subtract_g;
9625 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9626 PositionFinalLimited = DeltaTime;
9627 }
9628
9629 L4_MABX_B.MinMax3_n = PositionFinalLimited;
9630
9631 /* End of MinMax: '<S337>/MinMax3' */
9632
9633 /* Saturate: '<S337>/Saturation1' */
9634 DeltaTime = L4_MABX_B.MinMax3_n;
9635 Time56 = L4_MABX_P.Saturation1_LowerSat_o;
9636 PositionFinalLimited = L4_MABX_P.Saturation1_UpperSat_j;
9637 if (DeltaTime > PositionFinalLimited) {
9638 L4_MABX_B.Saturation1_e = PositionFinalLimited;
9639 } else if (DeltaTime < Time56) {
9640 L4_MABX_B.Saturation1_e = Time56;
9641 } else {
9642 L4_MABX_B.Saturation1_e = DeltaTime;
9643 }
9644
9645 /* End of Saturate: '<S337>/Saturation1' */
9646
9647 /* Product: '<S337>/Divide' */
9648 L4_MABX_B.Divide_e = L4_MABX_B.err_abs / L4_MABX_B.Saturation1_e;
9649
9650 /* Abs: '<S338>/Abs' */
9651 L4_MABX_B.Abs_ma = fabs(L4_MABX_B.Divide_e);
9652
9653 /* Product: '<S338>/Product1' */
9654 L4_MABX_B.Product1_iv = L4_MABX_B.Abs_ma * L4_MABX_B.Subtract_g;
9655
9656 /* Sum: '<S338>/Add1' */
9657 L4_MABX_B.Add1_bf = L4_MABX_B.Init_pn + L4_MABX_B.Product1_iv;
9658
9659 /* MinMax: '<S338>/MinMax2' */
9660 DeltaTime = L4_MABX_B.Vehicle_speed_target_o;
9661 PositionFinalLimited = L4_MABX_B.Add1_bf;
9662 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9663 PositionFinalLimited = DeltaTime;
9664 }
9665
9666 L4_MABX_B.MinMax2_c = PositionFinalLimited;
9667
9668 /* End of MinMax: '<S338>/MinMax2' */
9669
9670 /* Abs: '<S338>/Abs1' */
9671 L4_MABX_B.Abs1_f = fabs(L4_MABX_B.Divide_e);
9672
9673 /* Product: '<S338>/Product2' */
9674 L4_MABX_B.Product2_m = L4_MABX_B.Subtract_g * L4_MABX_B.Abs1_f;
9675
9676 /* Sum: '<S338>/Subtract1' */
9677 L4_MABX_B.Subtract1_h2 = L4_MABX_B.Init_pn - L4_MABX_B.Product2_m;
9678
9679 /* MinMax: '<S338>/MinMax1' */
9680 DeltaTime = L4_MABX_B.MinMax2_c;
9681 PositionFinalLimited = L4_MABX_B.Subtract1_h2;
9682 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9683 PositionFinalLimited = DeltaTime;
9684 }
9685
9686 L4_MABX_B.MinMax1_p = PositionFinalLimited;
9687
9688 /* End of MinMax: '<S338>/MinMax1' */
9689
9690 /* Outputs for Atomic SubSystem: '<S338>/If_Then_Else' */
9691 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_lp, L4_MABX_B.SFunction1_o1_os,
9692 L4_MABX_B.MinMax1_p, &L4_MABX_B.If_Then_Else_pz);
9693
9694 /* End of Outputs for SubSystem: '<S338>/If_Then_Else' */
9695
9696 /* Outputs for Atomic SubSystem: '<S81>/If_Then_Else' */
9697 L4_MABX_If_Then_Else_g(L4_MABX_B.LogicalOperator2_ft,
9698 L4_MABX_B.If_Then_Else_j.Switch, L4_MABX_B.If_Then_Else_pz.Switch,
9699 &L4_MABX_B.If_Then_Else_ji);
9700
9701 /* End of Outputs for SubSystem: '<S81>/If_Then_Else' */
9702
9703 /* MinMax: '<S81>/MinMax' */
9704 DeltaTime = L4_MABX_B.If_Then_Else_m4.Switch;
9705 PositionFinalLimited = L4_MABX_B.If_Then_Else_bf.Switch;
9706 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9707 PositionFinalLimited = DeltaTime;
9708 }
9709
9710 Time56 = L4_MABX_B.Vehicle_speed_abs_max;
9711 if (!((PositionFinalLimited < Time56) || rtIsNaN(Time56))) {
9712 PositionFinalLimited = Time56;
9713 }
9714
9715 Time56 = L4_MABX_B.If_Then_Else_ji.Switch;
9716 if (!((PositionFinalLimited < Time56) || rtIsNaN(Time56))) {
9717 PositionFinalLimited = Time56;
9718 }
9719
9720 L4_MABX_B.MinMax_o = PositionFinalLimited;
9721
9722 /* End of MinMax: '<S81>/MinMax' */
9723
9724 /* Saturate: '<S81>/Saturation8' */
9725 DeltaTime = L4_MABX_B.MinMax_o;
9726 Time56 = L4_MABX_P.Saturation8_LowerSat;
9727 PositionFinalLimited = L4_MABX_P.Saturation8_UpperSat;
9728 if (DeltaTime > PositionFinalLimited) {
9729 L4_MABX_B.Vehicle_speed_target_n = PositionFinalLimited;
9730 } else if (DeltaTime < Time56) {
9731 L4_MABX_B.Vehicle_speed_target_n = Time56;
9732 } else {
9733 L4_MABX_B.Vehicle_speed_target_n = DeltaTime;
9734 }
9735
9736 /* End of Saturate: '<S81>/Saturation8' */
9737
9738 /* Lookup_n-D: '<S194>/2D_Lookup_Table' */
9739 L4_MABX_B.uD_Lookup_Table_l = look2_binlcapw(0.0,
9740 L4_MABX_B.SPN1760_GrossCombinationVehicle, BRK_GOV_FF_DECEL_RATE_STEP_MPV,
9741 BRK_GOV_FF_MASS_STEP_MPV, BRK_GOV_FF_PRESS_KPA_DATA_MPV,
9742 L4_MABX_P.uD_Lookup_Table_maxIndex_e, 16U);
9743
9744 /* Product: '<S100>/Divide' */
9745 L4_MABX_B.Divide_f = L4_MABX_B.uD_Lookup_Table_l /
9746 L4_MABX_B.Primary_brake_circuit_pressur_n;
9747
9748 /* Gain: '<S100>/Gain1' */
9749 L4_MABX_B.Gain1_l = L4_MABX_P.Gain1_Gain_o * L4_MABX_B.Divide_f;
9750
9751 /* Saturate: '<S100>/Saturation1' */
9752 DeltaTime = L4_MABX_B.Gain1_l;
9753 Time56 = L4_MABX_P.Saturation1_LowerSat_n;
9754 PositionFinalLimited = L4_MABX_P.Saturation1_UpperSat_l;
9755 if (DeltaTime > PositionFinalLimited) {
9756 L4_MABX_B.Brake_appl_percent_to_achieve_d = PositionFinalLimited;
9757 } else if (DeltaTime < Time56) {
9758 L4_MABX_B.Brake_appl_percent_to_achieve_d = Time56;
9759 } else {
9760 L4_MABX_B.Brake_appl_percent_to_achieve_d = DeltaTime;
9761 }
9762
9763 /* End of Saturate: '<S100>/Saturation1' */
9764
9765 /* Saturate: '<S81>/Saturation2' incorporates:
9766 * Constant: '<S81>/ACCEL_LIM_MS2_APV'
9767 */
9768 DeltaTime = L4_MABX_P.ACCEL_LIM_MS2_APV_Value;
9769 Time56 = L4_MABX_P.Saturation2_LowerSat_l;
9770 PositionFinalLimited = L4_MABX_P.Saturation2_UpperSat_a;
9771 if (DeltaTime > PositionFinalLimited) {
9772 L4_MABX_B.ACCEL_LIM_MS2_APV_b = PositionFinalLimited;
9773 } else if (DeltaTime < Time56) {
9774 L4_MABX_B.ACCEL_LIM_MS2_APV_b = Time56;
9775 } else {
9776 L4_MABX_B.ACCEL_LIM_MS2_APV_b = DeltaTime;
9777 }
9778
9779 /* End of Saturate: '<S81>/Saturation2' */
9780
9781 /* Lookup_n-D: '<S195>/2D_Lookup_Table' */
9782 L4_MABX_B.uD_Lookup_Table_i = look2_binlcapw(L4_MABX_B.ACCEL_LIM_MS2_APV_b,
9783 L4_MABX_B.SPN1760_GrossCombinationVehicle, BRK_GOV_FF_DECEL_RATE_STEP_MPV,
9784 BRK_GOV_FF_MASS_STEP_MPV, BRK_GOV_FF_PRESS_KPA_DATA_MPV,
9785 L4_MABX_P.uD_Lookup_Table_maxIndex_n, 16U);
9786
9787 /* Product: '<S100>/Divide1' */
9788 L4_MABX_B.Divide1_f = L4_MABX_B.uD_Lookup_Table_i /
9789 L4_MABX_B.Primary_brake_circuit_pressur_n;
9790
9791 /* Gain: '<S100>/Gain2' */
9792 L4_MABX_B.Gain2_e = L4_MABX_P.Gain2_Gain_b * L4_MABX_B.Divide1_f;
9793
9794 /* Saturate: '<S100>/Saturation2' */
9795 DeltaTime = L4_MABX_B.Gain2_e;
9796 Time56 = L4_MABX_P.Saturation2_LowerSat_o;
9797 PositionFinalLimited = L4_MABX_P.Saturation2_UpperSat_b;
9798 if (DeltaTime > PositionFinalLimited) {
9799 L4_MABX_B.Brake_appl_percent_for_maximum_ = PositionFinalLimited;
9800 } else if (DeltaTime < Time56) {
9801 L4_MABX_B.Brake_appl_percent_for_maximum_ = Time56;
9802 } else {
9803 L4_MABX_B.Brake_appl_percent_for_maximum_ = DeltaTime;
9804 }
9805
9806 /* End of Saturate: '<S100>/Saturation2' */
9807
9808 /* DataTypeConversion: '<S77>/Data Type Conversion2' */
9809 L4_MABX_B.DataTypeConversion2_l3 = L4_MABX_B.SPN1760_GrossCombinationVehicle;
9810
9811 /* Outputs for Enabled SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' incorporates:
9812 * EnablePort: '<S97>/Enable'
9813 */
9814 if (L4_MABX_B.F_Brake_control_active) {
9815 if (!L4_MABX_DW.Bendix_2C2_vehicle_speed_feedba) {
9816 /* InitializeConditions for UnitDelay: '<S140>/Unit_Delay' */
9817 L4_MABX_DW.Unit_Delay_DSTATE_eu = L4_MABX_P.Unit_Delay_InitialCondition_f;
9818
9819 /* InitializeConditions for UnitDelay: '<S147>/Unit_Delay' */
9820 L4_MABX_DW.Unit_Delay_DSTATE_nw = L4_MABX_P.Unit_Delay_InitialCondition_jb;
9821
9822 /* InitializeConditions for UnitDelay: '<S167>/Unit_Delay1' */
9823 L4_MABX_DW.Unit_Delay1_DSTATE_f = L4_MABX_P.Unit_Delay1_InitialCondition_p;
9824
9825 /* InitializeConditions for UnitDelay: '<S168>/Unit_Delay' */
9826 L4_MABX_DW.Unit_Delay_DSTATE_g4 = L4_MABX_P.Unit_Delay_InitialCondition_lq;
9827
9828 /* InitializeConditions for UnitDelay: '<S172>/FixPt Unit Delay2' */
9829 L4_MABX_DW.FixPtUnitDelay2_DSTATE_o =
9830 L4_MABX_P.FixPtUnitDelay2_InitialCondit_p;
9831
9832 /* InitializeConditions for UnitDelay: '<S172>/FixPt Unit Delay1' */
9833 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g2 =
9834 L4_MABX_P.FixPtUnitDelay1_InitialCondit_b;
9835
9836 /* InitializeConditions for UnitDelay: '<S167>/Unit_Delay2' */
9837 L4_MABX_DW.Unit_Delay2_DSTATE_c = L4_MABX_P.Unit_Delay2_InitialCondition_b;
9838
9839 /* InitializeConditions for UnitDelay: '<S139>/Unit_Delay' */
9840 L4_MABX_DW.Unit_Delay_DSTATE_hs = L4_MABX_P.Unit_Delay_InitialCondition_h;
9841 L4_MABX_DW.Bendix_2C2_vehicle_speed_feedba = true;
9842 }
9843
9844 /* Lookup_n-D: '<S141>/1D_Lookup_Table' */
9845 L4_MABX_B.uD_Lookup_Table_f = look1_binlcapw
9846 (L4_MABX_B.DataTypeConversion2_l3, BRK_DEM_MASS_STEP_MPV,
9847 BRK_DEM_KP_DATA_MPV, 7U);
9848
9849 /* Lookup_n-D: '<S142>/1D_Lookup_Table' */
9850 L4_MABX_B.uD_Lookup_Table_p = look1_binlcapw
9851 (L4_MABX_B.DataTypeConversion2_l3, BRK_DEM_MASS_STEP_MPV,
9852 BRK_DEM_KI_DATA_MPV, 7U);
9853
9854 /* Lookup_n-D: '<S143>/1D_Lookup_Table' */
9855 L4_MABX_B.uD_Lookup_Table_o5 = look1_binlcapw
9856 (L4_MABX_B.DataTypeConversion2_l3, BRK_DEM_MASS_STEP_MPV,
9857 BRK_DEM_KD_DATA_MPV, 7U);
9858
9859 /* Abs: '<S144>/Abs' */
9860 L4_MABX_B.Abs_k = fabs(L4_MABX_B.uD_Lookup_Table_p);
9861
9862 /* Abs: '<S144>/Abs1' */
9863 L4_MABX_B.Abs1_eg = fabs(L4_MABX_B.uD_Lookup_Table_o5);
9864
9865 /* DigitalClock: '<S140>/Digital Clock' */
9866 L4_MABX_B.DigitalClock_n = L4_MABX_M->Timing.t[0];
9867
9868 /* UnitDelay: '<S140>/Unit_Delay' */
9869 L4_MABX_B.Unit_Delay_ko = L4_MABX_DW.Unit_Delay_DSTATE_eu;
9870
9871 /* Sum: '<S140>/Subtract' */
9872 L4_MABX_B.Subtract_ac = L4_MABX_B.DigitalClock_n - L4_MABX_B.Unit_Delay_ko;
9873
9874 /* UnitDelay: '<S147>/Unit_Delay' */
9875 L4_MABX_B.Unit_Delay_m1 = L4_MABX_DW.Unit_Delay_DSTATE_nw;
9876
9877 /* Logic: '<S147>/Logical Operator1' incorporates:
9878 * Constant: '<S97>/CPV2'
9879 */
9880 L4_MABX_B.LogicalOperator1_pf = (L4_MABX_B.Unit_Delay_m1 ||
9881 L4_MABX_P.CPV2_Value_a);
9882
9883 /* UnitDelay: '<S167>/Unit_Delay1' */
9884 L4_MABX_B.Unit_Delay1_jk = L4_MABX_DW.Unit_Delay1_DSTATE_f;
9885
9886 /* Logic: '<S167>/Logical Operator' */
9887 L4_MABX_B.LogicalOperator_l = (L4_MABX_B.LogicalOperator1_pf ||
9888 L4_MABX_B.Unit_Delay1_jk);
9889
9890 /* UnitDelay: '<S168>/Unit_Delay' */
9891 L4_MABX_B.Unit_Delay_li = L4_MABX_DW.Unit_Delay_DSTATE_g4;
9892
9893 /* Logic: '<S168>/Logical Operator1' */
9894 L4_MABX_B.LogicalOperator1_oy = (L4_MABX_B.LogicalOperator1_pf ||
9895 L4_MABX_B.Unit_Delay_li);
9896
9897 /* UnitDelay: '<S172>/FixPt Unit Delay2' */
9898 L4_MABX_B.FixPtUnitDelay2_mf = L4_MABX_DW.FixPtUnitDelay2_DSTATE_o;
9899
9900 /* UnitDelay: '<S172>/FixPt Unit Delay1' */
9901 L4_MABX_B.Xold_c = L4_MABX_DW.FixPtUnitDelay1_DSTATE_g2;
9902
9903 /* Switch: '<S172>/Init' */
9904 if (L4_MABX_B.FixPtUnitDelay2_mf != 0) {
9905 L4_MABX_B.Init_c = L4_MABX_B.Vehicle_speed_target_n;
9906 } else {
9907 L4_MABX_B.Init_c = L4_MABX_B.Xold_c;
9908 }
9909
9910 /* End of Switch: '<S172>/Init' */
9911
9912 /* Abs: '<S168>/Abs' incorporates:
9913 * Constant: '<S97>/BRK_DECEL_DEM_SLEW_INC_APV'
9914 */
9915 L4_MABX_B.Abs_o = fabs(L4_MABX_P.BRK_DECEL_DEM_SLEW_INC_APV_Valu);
9916
9917 /* Product: '<S168>/Product1' */
9918 L4_MABX_B.Product1_hy = L4_MABX_B.Abs_o * L4_MABX_B.Subtract_ac;
9919
9920 /* Sum: '<S168>/Add1' */
9921 L4_MABX_B.Add1_o = L4_MABX_B.Init_c + L4_MABX_B.Product1_hy;
9922
9923 /* MinMax: '<S168>/MinMax2' */
9924 DeltaTime = L4_MABX_B.Vehicle_speed_target_n;
9925 PositionFinalLimited = L4_MABX_B.Add1_o;
9926 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9927 PositionFinalLimited = DeltaTime;
9928 }
9929
9930 L4_MABX_B.MinMax2_p = PositionFinalLimited;
9931
9932 /* End of MinMax: '<S168>/MinMax2' */
9933
9934 /* Abs: '<S168>/Abs1' incorporates:
9935 * Constant: '<S97>/BRK_DECEL_DEM_SLEW_DEC_APV'
9936 */
9937 L4_MABX_B.Abs1_g = fabs(L4_MABX_P.BRK_DECEL_DEM_SLEW_DEC_APV_Valu);
9938
9939 /* Product: '<S168>/Product2' */
9940 L4_MABX_B.Product2_fh = L4_MABX_B.Subtract_ac * L4_MABX_B.Abs1_g;
9941
9942 /* Sum: '<S168>/Subtract1' */
9943 L4_MABX_B.Subtract1_f = L4_MABX_B.Init_c - L4_MABX_B.Product2_fh;
9944
9945 /* MinMax: '<S168>/MinMax1' */
9946 DeltaTime = L4_MABX_B.MinMax2_p;
9947 PositionFinalLimited = L4_MABX_B.Subtract1_f;
9948 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9949 PositionFinalLimited = DeltaTime;
9950 }
9951
9952 L4_MABX_B.MinMax1_hl = PositionFinalLimited;
9953
9954 /* End of MinMax: '<S168>/MinMax1' */
9955
9956 /* Outputs for Atomic SubSystem: '<S168>/If_Then_Else' */
9957 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_oy,
9958 L4_MABX_B.DataTypeConversion5_o, L4_MABX_B.MinMax1_hl,
9959 &L4_MABX_B.If_Then_Else_iy);
9960
9961 /* End of Outputs for SubSystem: '<S168>/If_Then_Else' */
9962
9963 /* Sum: '<S145>/Subtract' */
9964 L4_MABX_B.Subtract_jh = L4_MABX_B.If_Then_Else_iy.Switch -
9965 L4_MABX_B.DataTypeConversion5_o;
9966
9967 /* MinMax: '<S167>/MinMax1' incorporates:
9968 * Constant: '<S97>/BRK_DECEL_DEM_T_FILT_CTRL_ERROR_APV'
9969 */
9970 DeltaTime = L4_MABX_B.Subtract_ac;
9971 PositionFinalLimited = L4_MABX_P.BRK_DECEL_DEM_T_FILT_CTRL_ERROR;
9972 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9973 PositionFinalLimited = DeltaTime;
9974 }
9975
9976 L4_MABX_B.MinMax1_jg = PositionFinalLimited;
9977
9978 /* End of MinMax: '<S167>/MinMax1' */
9979
9980 /* Saturate: '<S167>/Saturation' */
9981 DeltaTime = L4_MABX_B.MinMax1_jg;
9982 Time56 = L4_MABX_P.Saturation_LowerSat_g;
9983 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_o;
9984 if (DeltaTime > PositionFinalLimited) {
9985 L4_MABX_B.Saturation_mo = PositionFinalLimited;
9986 } else if (DeltaTime < Time56) {
9987 L4_MABX_B.Saturation_mo = Time56;
9988 } else {
9989 L4_MABX_B.Saturation_mo = DeltaTime;
9990 }
9991
9992 /* End of Saturate: '<S167>/Saturation' */
9993
9994 /* Product: '<S167>/Divide' */
9995 L4_MABX_B.Divide_af = L4_MABX_B.Subtract_ac / L4_MABX_B.Saturation_mo;
9996
9997 /* Product: '<S167>/Product2' */
9998 L4_MABX_B.Product2_ce = L4_MABX_B.Subtract_jh * L4_MABX_B.Divide_af;
9999
10000 /* Sum: '<S167>/Subtract1' incorporates:
10001 * Constant: '<S167>/Constant1'
10002 */
10003 L4_MABX_B.Subtract1_cr = L4_MABX_P.Constant1_Value_o - L4_MABX_B.Divide_af;
10004
10005 /* UnitDelay: '<S167>/Unit_Delay2' */
10006 L4_MABX_B.Unit_Delay2_a = L4_MABX_DW.Unit_Delay2_DSTATE_c;
10007
10008 /* Product: '<S167>/Product1' */
10009 L4_MABX_B.Product1_ch = L4_MABX_B.Subtract1_cr * L4_MABX_B.Unit_Delay2_a;
10010
10011 /* Sum: '<S167>/Add1' */
10012 L4_MABX_B.Add1_hl = L4_MABX_B.Product2_ce + L4_MABX_B.Product1_ch;
10013
10014 /* Outputs for Atomic SubSystem: '<S167>/If_Then_Else' */
10015 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_l, L4_MABX_B.Subtract_jh,
10016 L4_MABX_B.Add1_hl, &L4_MABX_B.If_Then_Else_bc);
10017
10018 /* End of Outputs for SubSystem: '<S167>/If_Then_Else' */
10019
10020 /* RelationalOperator: '<S152>/Compare' incorporates:
10021 * Constant: '<S152>/Constant'
10022 */
10023 L4_MABX_B.Compare_ni = (L4_MABX_B.Abs1_eg >
10024 L4_MABX_P.CompareToConstant1_const_m);
10025
10026 /* Outputs for Enabled SubSystem: '<S144>/Calculate_D_term' */
10027
10028 /* Constant: '<S97>/BRK_DECEL_DEM_T_FILT_D_APV' */
10029 L4_MABX_Calculate_D_term(L4_MABX_B.Compare_ni, L4_MABX_B.uD_Lookup_Table_o5,
10030 L4_MABX_B.Subtract_ac, L4_MABX_B.LogicalOperator1_pf,
10031 L4_MABX_B.If_Then_Else_bc.Switch,
10032 L4_MABX_P.BRK_DECEL_DEM_T_FILT_D_APV_Valu, &L4_MABX_B.Calculate_D_term_p,
10033 &L4_MABX_DW.Calculate_D_term_p, &L4_MABX_P.Calculate_D_term_p);
10034
10035 /* End of Outputs for SubSystem: '<S144>/Calculate_D_term' */
10036
10037 /* Product: '<S150>/Product' */
10038 L4_MABX_B.Product_f = L4_MABX_B.uD_Lookup_Table_f *
10039 L4_MABX_B.If_Then_Else_bc.Switch;
10040
10041 /* UnitDelay: '<S139>/Unit_Delay' */
10042 L4_MABX_B.Unit_Delay_fg = L4_MABX_DW.Unit_Delay_DSTATE_hs;
10043
10044 /* RelationalOperator: '<S151>/Compare' incorporates:
10045 * Constant: '<S151>/Constant'
10046 */
10047 L4_MABX_B.Compare_dl = (L4_MABX_B.Abs_k >
10048 L4_MABX_P.CompareToConstant_const_c);
10049
10050 /* Outputs for Enabled SubSystem: '<S144>/Calculate_I_term' */
10051
10052 /* Constant: '<S97>/BRK_DECEL_DEM_AW_COND_INT_APV' incorporates:
10053 * Constant: '<S97>/BRK_DECEL_DEM_AW_HYSTERESIS_APV'
10054 * Constant: '<S97>/CPV1'
10055 */
10056 L4_MABX_Calculate_I_term(L4_MABX_B.Compare_dl, L4_MABX_B.Product_f,
10057 L4_MABX_B.uD_Lookup_Table_p, L4_MABX_B.Brake_appl_percent,
10058 L4_MABX_B.If_Then_Else_bc.Switch, L4_MABX_B.LogicalOperator1_pf,
10059 L4_MABX_B.Subtract_ac, L4_MABX_B.Brake_appl_percent_to_achieve_d,
10060 L4_MABX_P.BRK_DECEL_DEM_AW_COND_INT_APV_V,
10061 L4_MABX_P.BRK_DECEL_DEM_AW_HYSTERESIS_APV, L4_MABX_P.CPV1_Value_no,
10062 L4_MABX_B.Unit_Delay_fg, &L4_MABX_B.Calculate_I_term_e,
10063 &L4_MABX_DW.Calculate_I_term_e, &L4_MABX_P.Calculate_I_term_e);
10064
10065 /* End of Outputs for SubSystem: '<S144>/Calculate_I_term' */
10066
10067 /* RelationalOperator: '<S170>/min_relop' incorporates:
10068 * Constant: '<S170>/min_val'
10069 * Constant: '<S97>/BRK_DECEL_DEM_SLEW_INC_APV'
10070 */
10071 L4_MABX_B.min_relop_a = (L4_MABX_P.CheckStaticLowerBound_min_d <=
10072 L4_MABX_P.BRK_DECEL_DEM_SLEW_INC_APV_Valu);
10073
10074 /* Assertion: '<S170>/Assertion' */
10075 utAssert(L4_MABX_B.min_relop_a);
10076
10077 /* Sum: '<S146>/Add' */
10078 L4_MABX_B.Add_mh = ((L4_MABX_B.Product_f +
10079 L4_MABX_B.Calculate_I_term_e.If_Then_Else.Switch) +
10080 L4_MABX_B.Calculate_D_term_p.Subtract) +
10081 L4_MABX_B.Brake_appl_percent_to_achieve_d;
10082
10083 /* RelationalOperator: '<S173>/Relational Operator1' */
10084 L4_MABX_B.RelationalOperator1_km = (L4_MABX_B.Add_mh >=
10085 L4_MABX_B.Brake_appl_percent_for_maximum_);
10086
10087 /* RelationalOperator: '<S173>/Relational Operator' incorporates:
10088 * Constant: '<S97>/CPV'
10089 */
10090 L4_MABX_B.RelationalOperator_m = (L4_MABX_B.Add_mh <= L4_MABX_P.CPV_Value_i);
10091
10092 /* Outputs for Atomic SubSystem: '<S173>/If_Then_Else1' */
10093
10094 /* Constant: '<S97>/CPV' */
10095 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_m, L4_MABX_P.CPV_Value_i,
10096 L4_MABX_B.Add_mh, &L4_MABX_B.If_Then_Else1_g);
10097
10098 /* End of Outputs for SubSystem: '<S173>/If_Then_Else1' */
10099
10100 /* Outputs for Atomic SubSystem: '<S173>/If_Then_Else' */
10101 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_km,
10102 L4_MABX_B.Brake_appl_percent_for_maximum_,
10103 L4_MABX_B.If_Then_Else1_g.Switch,
10104 &L4_MABX_B.If_Then_Else_fo);
10105
10106 /* End of Outputs for SubSystem: '<S173>/If_Then_Else' */
10107 } else {
10108 if (L4_MABX_DW.Bendix_2C2_vehicle_speed_feedba) {
10109 /* Disable for Enabled SubSystem: '<S144>/Calculate_D_term' */
10110 if (L4_MABX_DW.Calculate_D_term_p.Calculate_D_term_MODE) {
10111 L4_Calculate_D_term_Disable(&L4_MABX_B.Calculate_D_term_p,
10112 &L4_MABX_DW.Calculate_D_term_p, &L4_MABX_P.Calculate_D_term_p);
10113 }
10114
10115 /* End of Disable for SubSystem: '<S144>/Calculate_D_term' */
10116
10117 /* Disable for Enabled SubSystem: '<S144>/Calculate_I_term' */
10118 if (L4_MABX_DW.Calculate_I_term_e.Calculate_I_term_MODE) {
10119 L4_Calculate_I_term_Disable(&L4_MABX_B.Calculate_I_term_e,
10120 &L4_MABX_DW.Calculate_I_term_e, &L4_MABX_P.Calculate_I_term_e);
10121 }
10122
10123 /* End of Disable for SubSystem: '<S144>/Calculate_I_term' */
10124
10125 /* Disable for Outport: '<S97>/PID_output' */
10126 L4_MABX_B.If_Then_Else_fo.Switch = L4_MABX_P.PID_output_Y0_p;
10127 L4_MABX_DW.Bendix_2C2_vehicle_speed_feedba = false;
10128 }
10129 }
10130
10131 /* End of Outputs for SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' */
10132
10133 /* RelationalOperator: '<S98>/Relational Operator2' incorporates:
10134 * Constant: '<S98>/CPV2'
10135 */
10136 L4_MABX_B.F_Driver_braking = (L4_MABX_B.XPRControlMode ==
10137 L4_MABX_P.CPV2_Value_hm);
10138
10139 /* Logic: '<S98>/Logical Operator2' */
10140 L4_MABX_B.F_Operator_brake_appl = (L4_MABX_B.If_Then_Else_la.Switch &&
10141 L4_MABX_B.F_Driver_braking);
10142
10143 /* RelationalOperator: '<S98>/Relational Operator5' incorporates:
10144 * Constant: '<S98>/BENDIX_2C2_BRAKE_APPL_THRESHOLD_KPA_APV'
10145 */
10146 L4_MABX_B.RelationalOperator5[0] = (L4_MABX_B.Bendix_2C2_Primary_brake_circui >
10147 L4_MABX_P.BENDIX_2C2_BRAKE_APPL_THRESHOLD);
10148 L4_MABX_B.RelationalOperator5[1] = (L4_MABX_B.Bendix_2C2_Secondary_brake_circ >
10149 L4_MABX_P.BENDIX_2C2_BRAKE_APPL_THRESHOLD);
10150
10151 /* Logic: '<S98>/Logical Operator6' */
10152 L4_MABX_B.F_Bendix_2C2_service_brake_pres = (L4_MABX_B.RelationalOperator5[0] ||
10153 L4_MABX_B.RelationalOperator5[1]);
10154
10155 /* RelationalOperator: '<S98>/Relational Operator' incorporates:
10156 * Constant: '<S98>/CPV'
10157 */
10158 L4_MABX_B.F_Bendix_2C2_braking = (L4_MABX_B.XPRControlMode ==
10159 L4_MABX_P.CPV_Value_e);
10160
10161 /* Logic: '<S98>/Logical Operator7' */
10162 L4_MABX_B.F_ADAS_brake_appl = (L4_MABX_B.If_Then_Else_la.Switch &&
10163 L4_MABX_B.F_Bendix_2C2_braking && L4_MABX_B.F_Bendix_2C2_service_brake_pres);
10164
10165 /* RelationalOperator: '<S98>/Relational Operator1' incorporates:
10166 * Constant: '<S98>/CPV1'
10167 */
10168 L4_MABX_B.F_ADAS_brake_error = (L4_MABX_B.XPRErrorState !=
10169 L4_MABX_P.CPV1_Value_i5);
10170
10171 /* Lookup_n-D: '<S193>/2D_Lookup_Table' */
10172 L4_MABX_B.uD_Lookup_Table_le = look2_binlcapw
10173 (L4_MABX_B.brake_system_avg_appl_pressure_,
10174 L4_MABX_B.SPN1760_GrossCombinationVehicle, BRK_GOV_FF_PRESS_KPA_STEP_MPV,
10175 BRK_GOV_FF_MASS_STEP_MPV, BRK_GOV_FF_DECEL_RATE_DATA_MPV,
10176 L4_MABX_P.uD_Lookup_Table_maxIndex_m, 16U);
10177
10178 /* Saturate: '<S100>/Saturation4' */
10179 DeltaTime = L4_MABX_B.uD_Lookup_Table_le;
10180 Time56 = L4_MABX_P.Saturation4_LowerSat_a;
10181 PositionFinalLimited = L4_MABX_P.Saturation4_UpperSat_f;
10182 if (DeltaTime > PositionFinalLimited) {
10183 L4_MABX_B.Decel_rate_calculated_ms2 = PositionFinalLimited;
10184 } else if (DeltaTime < Time56) {
10185 L4_MABX_B.Decel_rate_calculated_ms2 = Time56;
10186 } else {
10187 L4_MABX_B.Decel_rate_calculated_ms2 = DeltaTime;
10188 }
10189
10190 /* End of Saturate: '<S100>/Saturation4' */
10191
10192 /* DataTypeConversion: '<S101>/Data Type Conversion' */
10193 L4_MABX_B.DataTypeConversion_pp = L4_MABX_B.SFunction1_o1_le;
10194
10195 /* DataTypeConversion: '<S101>/Data Type Conversion1' */
10196 L4_MABX_B.DataTypeConversion1_k5 = L4_MABX_B.SFunction1_o2_g3;
10197
10198 /* Sum: '<S101>/Add' */
10199 L4_MABX_B.Add_m = L4_MABX_B.DataTypeConversion_pp +
10200 L4_MABX_B.DataTypeConversion1_k5;
10201
10202 /* UnitDelay: '<S101>/Unit_Delay' */
10203 L4_MABX_B.Unit_Delay_dy = L4_MABX_DW.Unit_Delay_DSTATE_eu4;
10204
10205 /* UnitDelay: '<S197>/Unit_Delay1' */
10206 L4_MABX_B.Unit_Delay1_k = L4_MABX_DW.Unit_Delay1_DSTATE_d;
10207
10208 /* Logic: '<S197>/Logical Operator' */
10209 L4_MABX_B.LogicalOperator_fc = (L4_MABX_B.Unit_Delay_dy ||
10210 L4_MABX_B.Unit_Delay1_k);
10211
10212 /* Gain: '<S101>/Gain' */
10213 L4_MABX_B.Gain_j0 = L4_MABX_P.Gain_Gain_f * L4_MABX_B.Add_m;
10214
10215 /* MinMax: '<S197>/MinMax1' incorporates:
10216 * Constant: '<S101>/Constant10'
10217 * Constant: '<S101>/VSPD_CAN_HRW_0B_FILT_T_APV'
10218 */
10219 DeltaTime = L4_MABX_P.Constant10_Value;
10220 PositionFinalLimited = L4_MABX_P.VSPD_CAN_HRW_0B_FILT_T_APV_Valu;
10221 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
10222 PositionFinalLimited = DeltaTime;
10223 }
10224
10225 L4_MABX_B.MinMax1_i = PositionFinalLimited;
10226
10227 /* End of MinMax: '<S197>/MinMax1' */
10228
10229 /* Saturate: '<S197>/Saturation' */
10230 DeltaTime = L4_MABX_B.MinMax1_i;
10231 Time56 = L4_MABX_P.Saturation_LowerSat_b;
10232 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_l;
10233 if (DeltaTime > PositionFinalLimited) {
10234 L4_MABX_B.Saturation_n = PositionFinalLimited;
10235 } else if (DeltaTime < Time56) {
10236 L4_MABX_B.Saturation_n = Time56;
10237 } else {
10238 L4_MABX_B.Saturation_n = DeltaTime;
10239 }
10240
10241 /* End of Saturate: '<S197>/Saturation' */
10242
10243 /* Product: '<S197>/Divide' incorporates:
10244 * Constant: '<S101>/Constant10'
10245 */
10246 L4_MABX_B.Divide_ae = L4_MABX_P.Constant10_Value / L4_MABX_B.Saturation_n;
10247
10248 /* Product: '<S197>/Product2' */
10249 L4_MABX_B.Product2_o = L4_MABX_B.Gain_j0 * L4_MABX_B.Divide_ae;
10250
10251 /* Sum: '<S197>/Subtract1' incorporates:
10252 * Constant: '<S197>/Constant1'
10253 */
10254 L4_MABX_B.Subtract1_e = L4_MABX_P.Constant1_Value_od - L4_MABX_B.Divide_ae;
10255
10256 /* UnitDelay: '<S197>/Unit_Delay2' */
10257 L4_MABX_B.Unit_Delay2_g = L4_MABX_DW.Unit_Delay2_DSTATE_e;
10258
10259 /* Product: '<S197>/Product1' */
10260 L4_MABX_B.Product1_o = L4_MABX_B.Subtract1_e * L4_MABX_B.Unit_Delay2_g;
10261
10262 /* Sum: '<S197>/Add1' */
10263 L4_MABX_B.Add1_n1 = L4_MABX_B.Product2_o + L4_MABX_B.Product1_o;
10264
10265 /* Outputs for Atomic SubSystem: '<S197>/If_Then_Else' */
10266 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_fc, L4_MABX_B.Gain_j0,
10267 L4_MABX_B.Add1_n1, &L4_MABX_B.If_Then_Else_ga);
10268
10269 /* End of Outputs for SubSystem: '<S197>/If_Then_Else' */
10270
10271 /* SampleTimeMath: '<S196>/TSamp'
10272 *
10273 * About '<S196>/TSamp':
10274 * y = u * K where K = 1 / ( w * Ts )
10275 */
10276 L4_MABX_B.TSamp = L4_MABX_B.If_Then_Else_ga.Switch * L4_MABX_P.TSamp_WtEt;
10277
10278 /* UnitDelay: '<S196>/UD' */
10279 L4_MABX_B.Uk1_b = L4_MABX_DW.UD_DSTATE;
10280
10281 /* Sum: '<S196>/Diff' */
10282 L4_MABX_B.Diff = L4_MABX_B.TSamp - L4_MABX_B.Uk1_b;
10283
10284 /* MinMax: '<S77>/MinMax' */
10285 DeltaTime = L4_MABX_B.If_Then_Else_nj.Switch;
10286 PositionFinalLimited = L4_MABX_B.If_Then_Else_fo.Switch;
10287 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
10288 PositionFinalLimited = DeltaTime;
10289 }
10290
10291 L4_MABX_B.BrakingPID_Y_percent = PositionFinalLimited;
10292
10293 /* End of MinMax: '<S77>/MinMax' */
10294
10295 /* Gain: '<S77>/Gain' */
10296 L4_MABX_B.BrakingPID_Y_k = L4_MABX_P.Gain_Gain_no *
10297 L4_MABX_B.BrakingPID_Y_percent;
10298
10299 /* DataTypeConversion: '<S79>/Data Type Conversion' */
10300 L4_MABX_B.DataTypeConversion_de = AutonomousEnabled;
10301
10302 /* DataTypeConversion: '<S79>/Data Type Conversion2' */
10303 L4_MABX_B.DataTypeConversion2_lf = (real32_T)L4_MABX_B.SFunction1_o1_os;
10304
10305 /* DataTypeConversion: '<S79>/Data Type Conversion1' */
10306 PositionFinalLimited = floor(L4_MABX_B.SFunction1_o8_l);
10307 if (rtIsNaN(PositionFinalLimited) || rtIsInf(PositionFinalLimited)) {
10308 PositionFinalLimited = 0.0;
10309 } else {
10310 PositionFinalLimited = fmod(PositionFinalLimited, 256.0);
10311 }
10312
10313 L4_MABX_B.DataTypeConversion1_f1 = (uint8_T)(PositionFinalLimited < 0.0 ?
10314 (int32_T)(uint8_T)-(int8_T)(uint8_T)-PositionFinalLimited : (int32_T)
10315 (uint8_T)PositionFinalLimited);
10316
10317 /* End of DataTypeConversion: '<S79>/Data Type Conversion1' */
10318
10319 /* Chart: '<S79>/Chart' incorporates:
10320 * Constant: '<S79>/Constant'
10321 */
10322 /* Gateway: STATE_CONTROL_10ms/Chart */
10323 /* During: STATE_CONTROL_10ms/Chart */
10324 if (L4_MABX_DW.is_active_c19_SUB_L4_Task_10ms_ == 0U) {
10325 /* Entry: STATE_CONTROL_10ms/Chart */
10326 L4_MABX_DW.is_active_c19_SUB_L4_Task_10ms_ = 1U;
10327
10328 /* Entry Internal: STATE_CONTROL_10ms/Chart */
10329 /* Transition: '<S201>:2' */
10330 L4_MABX_DW.is_c19_SUB_L4_Task_10ms_SUB_STA = L4_MABX_IN_Init;
10331
10332 /* Entry 'Init': '<S201>:1' */
10333 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_INIT;
10334 } else {
10335 switch (L4_MABX_DW.is_c19_SUB_L4_Task_10ms_SUB_STA) {
10336 case L4_MABX_IN_Init:
10337 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_INIT;
10338
10339 /* During 'Init': '<S201>:1' */
10340 if (!L4_MABX_P.Constant_Value_cp) {
10341 /* Transition: '<S201>:9' */
10342 L4_MABX_DW.is_c19_SUB_L4_Task_10ms_SUB_STA = L4_MABX_IN_OperatorDisabled;
10343
10344 /* Entry 'OperatorDisabled': '<S201>:3' */
10345 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_OPERATOR_DISABLED;
10346 }
10347 break;
10348
10349 case L4_MABX_IN_OperatorDisabled:
10350 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_OPERATOR_DISABLED;
10351
10352 /* During 'OperatorDisabled': '<S201>:3' */
10353 if (L4_MABX_B.DataTypeConversion_de) {
10354 /* Transition: '<S201>:11' */
10355 L4_MABX_DW.is_c19_SUB_L4_Task_10ms_SUB_STA = L4_MABX_IN_OperatorEnabled;
10356
10357 /* Entry 'OperatorEnabled': '<S201>:10' */
10358 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_AUTO_CTRL_ENABLED;
10359
10360 /* Entry Internal 'OperatorEnabled': '<S201>:10' */
10361 /* Transition: '<S201>:16' */
10362 /* Entry 'AutoControlEnabled': '<S201>:13' */
10363 /* Entry Internal 'AutoControlEnabled': '<S201>:13' */
10364 /* Transition: '<S201>:15' */
10365 /* Entry 'init': '<S201>:14' */
10366 L4_MABX_B.VehCtrlState = ENUM_AUTO_CTRL_VEHICLE_STATE_T_INIT;
10367 }
10368 break;
10369
10370 default:
10371 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_AUTO_CTRL_ENABLED;
10372
10373 /* During 'OperatorEnabled': '<S201>:10' */
10374 if ((!L4_MABX_B.DataTypeConversion_de) || L4_MABX_P.Constant_Value_cp) {
10375 /* Transition: '<S201>:12' */
10376 /* Exit Internal 'OperatorEnabled': '<S201>:10' */
10377 /* Exit Internal 'AutoControlEnabled': '<S201>:13' */
10378 L4_MABX_DW.is_c19_SUB_L4_Task_10ms_SUB_STA = L4_MABX_IN_OperatorDisabled;
10379
10380 /* Entry 'OperatorDisabled': '<S201>:3' */
10381 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_OPERATOR_DISABLED;
10382 } else {
10383 /* During 'AutoControlEnabled': '<S201>:13' */
10384 L4_MABX_B.VehCtrlState = ENUM_AUTO_CTRL_VEHICLE_STATE_T_INIT;
10385
10386 /* During 'init': '<S201>:14' */
10387 }
10388 break;
10389 }
10390 }
10391
10392 /* End of Chart: '<S79>/Chart' */
10393
10394 /* Outputs for Enabled SubSystem: '<S79>/Engine_speed_target' incorporates:
10395 * EnablePort: '<S204>/Enable'
10396 */
10397 if (L4_MABX_B.LogicalOperator_ke) {
10398 if (!L4_MABX_DW.Engine_speed_target_MODE) {
10399 L4_MABX_DW.Engine_speed_target_MODE = true;
10400 }
10401
10402 /* Gain: '<S204>/KPH_TO_MPH' */
10403 L4_MABX_B.KPH_TO_MPH = L4_MABX_P.KPH_TO_MPH_Gain *
10404 L4_MABX_B.VSPD_TARGET_KPH_APV_g;
10405
10406 /* MinMax: '<S204>/MinMax' incorporates:
10407 * Constant: '<S204>/Constant2'
10408 * Constant: '<S204>/TIRE_DIAM_INCHES_APV'
10409 */
10410 DeltaTime = L4_MABX_P.TIRE_DIAM_INCHES_APV_Value;
10411 PositionFinalLimited = L4_MABX_P.Constant2_Value_m;
10412 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
10413 PositionFinalLimited = DeltaTime;
10414 }
10415
10416 L4_MABX_B.MinMax_dl = PositionFinalLimited;
10417
10418 /* End of MinMax: '<S204>/MinMax' */
10419
10420 /* Product: '<S204>/Divide' incorporates:
10421 * Constant: '<S204>/CONVERSION_CONSTANT_CPV'
10422 * Constant: '<S204>/REAR_AXLE_RATIO_VALUE_APV'
10423 */
10424 L4_MABX_B.Divide_pm = L4_MABX_B.KPH_TO_MPH *
10425 L4_MABX_B.SPN526_TransActualGearRatio *
10426 L4_MABX_P.REAR_AXLE_RATIO_VALUE_APV_Value *
10427 L4_MABX_P.CONVERSION_CONSTANT_CPV_Value / L4_MABX_B.MinMax_dl;
10428
10429 /* MinMax: '<S204>/MinMax1' incorporates:
10430 * Constant: '<S204>/Constant1'
10431 */
10432 DeltaTime = L4_MABX_B.Divide_pm;
10433 PositionFinalLimited = L4_MABX_P.Constant1_Value_f;
10434 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
10435 PositionFinalLimited = DeltaTime;
10436 }
10437
10438 L4_MABX_B.MinMax1_n = PositionFinalLimited;
10439
10440 /* End of MinMax: '<S204>/MinMax1' */
10441 } else {
10442 if (L4_MABX_DW.Engine_speed_target_MODE) {
10443 /* Disable for Outport: '<S204>/Out1' */
10444 L4_MABX_B.MinMax1_n = L4_MABX_P.Out1_Y0;
10445 L4_MABX_DW.Engine_speed_target_MODE = false;
10446 }
10447 }
10448
10449 /* End of Outputs for SubSystem: '<S79>/Engine_speed_target' */
10450
10451 /* RelationalOperator: '<S205>/Relational Operator1' incorporates:
10452 * Constant: '<S205>/CPV3'
10453 */
10454 L4_MABX_B.RelationalOperator1_c = (L4_MABX_B.SFunction1_o1_os <=
10455 L4_MABX_P.CPV3_Value_n);
10456
10457 /* RelationalOperator: '<S205>/Relational Operator3' incorporates:
10458 * Constant: '<S205>/CPV1'
10459 */
10460 L4_MABX_B.RelationalOperator3_g = (L4_MABX_B.SPN524_TransSelectedGear ==
10461 L4_MABX_P.CPV1_Value_n);
10462
10463 /* RelationalOperator: '<S205>/Relational Operator2' incorporates:
10464 * Constant: '<S205>/CPV2'
10465 */
10466 L4_MABX_B.RelationalOperator2_f = (L4_MABX_B.SPN523_TransCurrentGear ==
10467 L4_MABX_P.CPV2_Value_h);
10468
10469 /* RelationalOperator: '<S205>/Relational Operator4' incorporates:
10470 * Constant: '<S205>/CPV5'
10471 */
10472 L4_MABX_B.RelationalOperator4_o = (L4_MABX_B.SFunction1_o2_hy ==
10473 L4_MABX_P.CPV5_Value_g);
10474
10475 /* Logic: '<S205>/Logical Operator' */
10476 L4_MABX_B.F_Ignition_sw_off_conditions_me = (L4_MABX_B.RelationalOperator1_c &&
10477 L4_MABX_B.RelationalOperator3_g && L4_MABX_B.RelationalOperator2_f &&
10478 L4_MABX_B.RelationalOperator4_o);
10479
10480 /* RelationalOperator: '<S205>/Relational Operator' incorporates:
10481 * Constant: '<S205>/IGN_SW_VOLTAGE_THRESHOLD_APV'
10482 */
10483 L4_MABX_B.F_Ignition_sw_on = (L4_MABX_B.IgnitionKeySwitch_voltage >=
10484 L4_MABX_P.IGN_SW_VOLTAGE_THRESHOLD_APV_Va);
10485
10486 /* SignalConversion: '<S212>/TmpSignal ConversionAt SFunction Inport3' incorporates:
10487 * Chart: '<S205>/Relay_control_state_machine'
10488 * Constant: '<S205>/IGN_RELAY_ON_DELAY_SECS_APV'
10489 * Constant: '<S205>/INVERTER_RELAY_ON_DELAY_SECS_APV'
10490 * Constant: '<S205>/MABX_RELAY_ON_DELAY_SECS_APV'
10491 * Constant: '<S205>/SENSOR_RELAY_ON_DELAY_SECS_APV'
10492 */
10493 L4_MABX_B.TmpSignalConversionAtSFunctionI[0] =
10494 L4_MABX_P.IGN_RELAY_ON_DELAY_SECS_APV_Val;
10495 L4_MABX_B.TmpSignalConversionAtSFunctionI[1] =
10496 L4_MABX_P.INVERTER_RELAY_ON_DELAY_SECS_AP;
10497 L4_MABX_B.TmpSignalConversionAtSFunctionI[2] =
10498 L4_MABX_P.MABX_RELAY_ON_DELAY_SECS_APV_Va;
10499 L4_MABX_B.TmpSignalConversionAtSFunctionI[3] =
10500 L4_MABX_P.SENSOR_RELAY_ON_DELAY_SECS_APV_;
10501
10502 /* SignalConversion: '<S212>/TmpSignal ConversionAt SFunction Inport4' incorporates:
10503 * Chart: '<S205>/Relay_control_state_machine'
10504 * Constant: '<S205>/IGN_RELAY_OFF_DELAY_SECS_APV'
10505 * Constant: '<S205>/INVERTER_RELAY_OFF_DELAY_SECS_APV'
10506 * Constant: '<S205>/MABX_RELAY_OFF_DELAY_SECS_APV'
10507 * Constant: '<S205>/SENSOR_RELAY_OFF_DELAY_SECS_APV'
10508 */
10509 L4_MABX_B.TmpSignalConversionAtSFunctio_k[0] =
10510 L4_MABX_P.IGN_RELAY_OFF_DELAY_SECS_APV_Va;
10511 L4_MABX_B.TmpSignalConversionAtSFunctio_k[1] =
10512 L4_MABX_P.INVERTER_RELAY_OFF_DELAY_SECS_A;
10513 L4_MABX_B.TmpSignalConversionAtSFunctio_k[2] =
10514 L4_MABX_P.MABX_RELAY_OFF_DELAY_SECS_APV_V;
10515 L4_MABX_B.TmpSignalConversionAtSFunctio_k[3] =
10516 L4_MABX_P.SENSOR_RELAY_OFF_DELAY_SECS_APV;
10517
10518 /* Chart: '<S205>/Relay_control_state_machine' */
10519 if (L4_MABX_DW.temporalCounter_i1 < MAX_uint32_T) {
10520 L4_MABX_DW.temporalCounter_i1++;
10521 }
10522
10523 /* Gateway: STATE_CONTROL_10ms/Relay_control/Relay_control_state_machine */
10524 /* During: STATE_CONTROL_10ms/Relay_control/Relay_control_state_machine */
10525 if (L4_MABX_DW.is_active_c6_SUB_L4_Task_10ms_S == 0U) {
10526 /* Entry: STATE_CONTROL_10ms/Relay_control/Relay_control_state_machine */
10527 L4_MABX_DW.is_active_c6_SUB_L4_Task_10ms_S = 1U;
10528
10529 /* Entry Internal: STATE_CONTROL_10ms/Relay_control/Relay_control_state_machine */
10530 /* Transition: '<S212>:13' */
10531 L4_MABX_DW.is_c6_SUB_L4_Task_10ms_SUB_STAT = L4_MABX_IN_INITIAL;
10532 L4_MABX_enter_atomic_INITIAL();
10533 } else {
10534 switch (L4_MABX_DW.is_c6_SUB_L4_Task_10ms_SUB_STAT) {
10535 case L4_MABX_IN_INITIAL:
10536 L4_MABX_B.F_Ignition_relay_command_i = false;
10537 L4_MABX_B.F_Inverter_relay_command_p = false;
10538 L4_MABX_B.F_MABX_relay_command_n = false;
10539 L4_MABX_B.F_Sensor_relay_command_k = false;
10540
10541 /* During 'INITIAL': '<S212>:12' */
10542 if (L4_MABX_B.F_Ignition_sw_on) {
10543 /* Transition: '<S212>:17' */
10544 L4_MABX_DW.is_c6_SUB_L4_Task_10ms_SUB_STAT = L4_MABX_IN_POWER_UP_ROUTINE;
10545
10546 /* Entry Internal 'POWER_UP_ROUTINE': '<S212>:16' */
10547 /* Transition: '<S212>:64' */
10548 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_WAIT;
10549 L4_MABX_DW.temporalCounter_i1 = 0U;
10550 }
10551 break;
10552
10553 case L4_MABX_IN_POWER_DOWN_ROUTINE:
10554 /* During 'POWER_DOWN_ROUTINE': '<S212>:30' */
10555 switch (L4_MABX_DW.is_POWER_DOWN_ROUTINE) {
10556 case L4_MABX_IN_IGN_RELAY_UNLATCH:
10557 L4_MABX_B.F_Ignition_relay_command_i = false;
10558
10559 /* During 'IGN_RELAY_UNLATCH': '<S212>:29' */
10560 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10561 (L4_MABX_DW.INVERTER_RELAY_OFF_DELAY_SECS_A * 100.0)) {
10562 /* Transition: '<S212>:23' */
10563 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_INV_RELAY_UNLATCH;
10564 L4_MABX_DW.temporalCounter_i1 = 0U;
10565
10566 /* Entry 'INV_RELAY_UNLATCH': '<S212>:28' */
10567 L4_MABX_B.F_Inverter_relay_command_p = false;
10568 }
10569 break;
10570
10571 case L4_MABX_IN_INV_RELAY_UNLATCH:
10572 L4_MABX_B.F_Inverter_relay_command_p = false;
10573
10574 /* During 'INV_RELAY_UNLATCH': '<S212>:28' */
10575 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10576 (L4_MABX_DW.SENSOR_RELAY_OFF_DELAY_SECS_APV * 100.0)) {
10577 /* Transition: '<S212>:22' */
10578 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_SENSOR_RELAY_UNLATCH;
10579 L4_MABX_DW.temporalCounter_i1 = 0U;
10580
10581 /* Entry 'SENSOR_RELAY_UNLATCH': '<S212>:25' */
10582 L4_MABX_B.F_Sensor_relay_command_k = false;
10583 }
10584 break;
10585
10586 case L4_MABX_IN_MABX_RELAY_UNLATCH:
10587 L4_MABX_B.F_MABX_relay_command_n = false;
10588
10589 /* During 'MABX_RELAY_UNLATCH': '<S212>:27' */
10590 /* Transition: '<S212>:45' */
10591 /* Transition: '<S212>:46' */
10592 /* Transition: '<S212>:47' */
10593 /* Transition: '<S212>:48' */
10594 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_NO_ACTIVE_CHILD;
10595 L4_MABX_DW.is_c6_SUB_L4_Task_10ms_SUB_STAT = L4_MABX_IN_INITIAL;
10596 L4_MABX_enter_atomic_INITIAL();
10597 break;
10598
10599 case L4_MABX_IN_SENSOR_RELAY_UNLATCH:
10600 L4_MABX_B.F_Sensor_relay_command_k = false;
10601
10602 /* During 'SENSOR_RELAY_UNLATCH': '<S212>:25' */
10603 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10604 (L4_MABX_DW.MABX_RELAY_OFF_DELAY_SECS_APV * 100.0)) {
10605 /* Transition: '<S212>:26' */
10606 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_MABX_RELAY_UNLATCH;
10607
10608 /* Entry 'MABX_RELAY_UNLATCH': '<S212>:27' */
10609 L4_MABX_B.F_MABX_relay_command_n = false;
10610 }
10611 break;
10612
10613 default:
10614 /* During 'WAIT': '<S212>:65' */
10615 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10616 (L4_MABX_DW.IGN_RELAY_OFF_DELAY_SECS_APV * 100.0)) {
10617 /* Transition: '<S212>:55' */
10618 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_IGN_RELAY_UNLATCH;
10619 L4_MABX_DW.temporalCounter_i1 = 0U;
10620
10621 /* Entry 'IGN_RELAY_UNLATCH': '<S212>:29' */
10622 L4_MABX_B.F_Ignition_relay_command_i = false;
10623 }
10624 break;
10625 }
10626 break;
10627
10628 default:
10629 /* During 'POWER_UP_ROUTINE': '<S212>:16' */
10630 zcEvent = ((!L4_MABX_B.F_Ignition_sw_on) &&
10631 L4_MABX_B.F_Ignition_sw_off_conditions_me);
10632 if (zcEvent) {
10633 /* Transition: '<S212>:31' */
10634 /* Exit Internal 'POWER_UP_ROUTINE': '<S212>:16' */
10635 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_NO_ACTIVE_CHILD;
10636 L4_MABX_DW.is_c6_SUB_L4_Task_10ms_SUB_STAT =
10637 L4_MABX_IN_POWER_DOWN_ROUTINE;
10638
10639 /* Entry Internal 'POWER_DOWN_ROUTINE': '<S212>:30' */
10640 /* Transition: '<S212>:66' */
10641 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_WAIT;
10642 L4_MABX_DW.temporalCounter_i1 = 0U;
10643 } else {
10644 switch (L4_MABX_DW.is_POWER_UP_ROUTINE) {
10645 case L4_MABX_IN_IGN_RELAY_LATCH:
10646 L4_MABX_B.F_Ignition_relay_command_i = true;
10647
10648 /* During 'IGN_RELAY_LATCH': '<S212>:20' */
10649 break;
10650
10651 case L4_MABX_IN_INV_RELAY_LATCH:
10652 L4_MABX_B.F_Inverter_relay_command_p = true;
10653
10654 /* During 'INV_RELAY_LATCH': '<S212>:19' */
10655 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10656 (L4_MABX_DW.IGN_RELAY_ON_DELAY_SECS_APV * 100.0)) {
10657 /* Transition: '<S212>:21' */
10658 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_IGN_RELAY_LATCH;
10659
10660 /* Entry 'IGN_RELAY_LATCH': '<S212>:20' */
10661 L4_MABX_B.F_Ignition_relay_command_i = true;
10662 }
10663 break;
10664
10665 case L4_MABX_IN_MABX_RELAY_LATCH:
10666 L4_MABX_B.F_MABX_relay_command_n = true;
10667
10668 /* During 'MABX_RELAY_LATCH': '<S212>:10' */
10669 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10670 (L4_MABX_DW.SENSOR_RELAY_ON_DELAY_SECS_APV * 100.0)) {
10671 /* Transition: '<S212>:15' */
10672 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_SENSOR_RELAY_LATCH;
10673 L4_MABX_DW.temporalCounter_i1 = 0U;
10674
10675 /* Entry 'SENSOR_RELAY_LATCH': '<S212>:14' */
10676 L4_MABX_B.F_Sensor_relay_command_k = true;
10677 }
10678 break;
10679
10680 case L4_MABX_IN_SENSOR_RELAY_LATCH:
10681 L4_MABX_B.F_Sensor_relay_command_k = true;
10682
10683 /* During 'SENSOR_RELAY_LATCH': '<S212>:14' */
10684 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10685 (L4_MABX_DW.INVERTER_RELAY_ON_DELAY_SECS_AP * 100.0)) {
10686 /* Transition: '<S212>:18' */
10687 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_INV_RELAY_LATCH;
10688 L4_MABX_DW.temporalCounter_i1 = 0U;
10689
10690 /* Entry 'INV_RELAY_LATCH': '<S212>:19' */
10691 L4_MABX_B.F_Inverter_relay_command_p = true;
10692 }
10693 break;
10694
10695 default:
10696 /* During 'WAIT': '<S212>:63' */
10697 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10698 (L4_MABX_DW.MABX_RELAY_ON_DELAY_SECS_APV * 100.0)) {
10699 /* Transition: '<S212>:11' */
10700 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_MABX_RELAY_LATCH;
10701 L4_MABX_DW.temporalCounter_i1 = 0U;
10702
10703 /* Entry 'MABX_RELAY_LATCH': '<S212>:10' */
10704 L4_MABX_B.F_MABX_relay_command_n = true;
10705 }
10706 break;
10707 }
10708 }
10709 break;
10710 }
10711 }
10712
10713 /* Lookup_n-D: '<S79>/CurveBasedSpeedSetpoint' incorporates:
10714 * Constant: '<S80>/zero'
10715 */
10716 L4_MABX_B.CurveBasedSpeedSetpoint = look1_binlcapw(L4_MABX_P.zero_Value,
10717 L4_MABX_P.CurveBasedSpeedSetpoint_bp01Dat,
10718 L4_MABX_P.CurveBasedSpeedSetpoint_tableDa, 4U);
10719
10720 /* Lookup_n-D: '<S80>/1-D Lookup Table1' */
10721 L4_MABX_B.uDLookupTable1 = look1_binlxpw(SteerWheelAngle,
10722 L4_MABX_P.uDLookupTable1_bp01Data, L4_MABX_P.uDLookupTable1_tableData, 16U);
10723
10724 /* Product: '<S278>/Divide' incorporates:
10725 * Constant: '<S271>/Constant'
10726 * Constant: '<S271>/Constant1'
10727 */
10728 L4_MABX_B.Divide_nn = (real32_T)(L4_MABX_P.Constant1_Value_i /
10729 L4_MABX_P.Constant_Value_e);
10730
10731 /* DataTypeConversion: '<S80>/Data Type Conversion5' */
10732 PositionFinalLimited = floor(L4_MABX_B.SFunction1_o2_lf);
10733 if (rtIsNaN(PositionFinalLimited) || rtIsInf(PositionFinalLimited)) {
10734 PositionFinalLimited = 0.0;
10735 } else {
10736 PositionFinalLimited = fmod(PositionFinalLimited, 256.0);
10737 }
10738
10739 L4_MABX_B.DataTypeConversion5_e3 = (uint8_T)(PositionFinalLimited < 0.0 ?
10740 (int32_T)(uint8_T)-(int8_T)(uint8_T)-PositionFinalLimited : (int32_T)
10741 (uint8_T)PositionFinalLimited);
10742
10743 /* End of DataTypeConversion: '<S80>/Data Type Conversion5' */
10744
10745 /* Chart: '<S276>/Chart' */
10746 /* Gateway: STEERCTRL_10ms/slew/Chart */
10747 /* During: STEERCTRL_10ms/slew/Chart */
10748 if (L4_MABX_DW.is_active_c12_SUB_L4_Task_10ms_ == 0U) {
10749 /* Entry: STEERCTRL_10ms/slew/Chart */
10750 L4_MABX_DW.is_active_c12_SUB_L4_Task_10ms_ = 1U;
10751
10752 /* Entry Internal: STEERCTRL_10ms/slew/Chart */
10753 /* Transition: '<S320>:4' */
10754 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_init_f;
10755
10756 /* Entry 'init': '<S320>:1' */
10757 L4_MABX_B.stateChange = 0U;
10758 } else {
10759 switch (L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE) {
10760 case L4_MABX_IN_OneLane:
10761 /* During 'OneLane': '<S320>:7' */
10762 /* Transition: '<S320>:20' */
10763 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_OneLane1;
10764
10765 /* Entry 'OneLane1': '<S320>:18' */
10766 L4_MABX_B.stateChange = 0U;
10767 break;
10768
10769 case L4_MABX_IN_OneLane1:
10770 L4_MABX_B.stateChange = 0U;
10771
10772 /* During 'OneLane1': '<S320>:18' */
10773 zcEvent = ((L4_MABX_B.DataTypeConversion5_e3 < 3) ||
10774 (L4_MABX_B.DataTypeConversion5_e3 > 18));
10775 if (zcEvent) {
10776 /* Transition: '<S320>:22' */
10777 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_init_f;
10778
10779 /* Entry 'init': '<S320>:1' */
10780 L4_MABX_B.stateChange = 0U;
10781 }
10782 break;
10783
10784 case L4_MABX_IN_TwoLanes:
10785 /* During 'TwoLanes': '<S320>:8' */
10786 /* Transition: '<S320>:21' */
10787 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_TwoLanes1;
10788
10789 /* Entry 'TwoLanes1': '<S320>:19' */
10790 L4_MABX_B.stateChange = 0U;
10791 break;
10792
10793 case L4_MABX_IN_TwoLanes1:
10794 L4_MABX_B.stateChange = 0U;
10795
10796 /* During 'TwoLanes1': '<S320>:19' */
10797 if (L4_MABX_B.DataTypeConversion5_e3 < 18) {
10798 /* Transition: '<S320>:23' */
10799 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_init_f;
10800
10801 /* Entry 'init': '<S320>:1' */
10802 L4_MABX_B.stateChange = 0U;
10803 }
10804 break;
10805
10806 case L4_MABX_IN_ZeroLanes:
10807 /* During 'ZeroLanes': '<S320>:5' */
10808 /* Transition: '<S320>:16' */
10809 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_ZeroLanes1;
10810
10811 /* Entry 'ZeroLanes1': '<S320>:15' */
10812 L4_MABX_B.stateChange = 0U;
10813 break;
10814
10815 case L4_MABX_IN_ZeroLanes1:
10816 L4_MABX_B.stateChange = 0U;
10817
10818 /* During 'ZeroLanes1': '<S320>:15' */
10819 if (L4_MABX_B.DataTypeConversion5_e3 > 3) {
10820 /* Transition: '<S320>:17' */
10821 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_init_f;
10822
10823 /* Entry 'init': '<S320>:1' */
10824 L4_MABX_B.stateChange = 0U;
10825 }
10826 break;
10827
10828 default:
10829 L4_MABX_B.stateChange = 0U;
10830
10831 /* During 'init': '<S320>:1' */
10832 if (L4_MABX_B.DataTypeConversion5_e3 <= 3) {
10833 /* Transition: '<S320>:6' */
10834 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_ZeroLanes;
10835
10836 /* Entry 'ZeroLanes': '<S320>:5' */
10837 L4_MABX_B.stateChange = 1U;
10838 } else if (L4_MABX_B.DataTypeConversion5_e3 > 18) {
10839 /* Transition: '<S320>:9' */
10840 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_TwoLanes;
10841
10842 /* Entry 'TwoLanes': '<S320>:8' */
10843 L4_MABX_B.stateChange = 1U;
10844 } else {
10845 if (L4_MABX_B.DataTypeConversion5_e3 > 3) {
10846 /* Transition: '<S320>:10' */
10847 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_OneLane;
10848
10849 /* Entry 'OneLane': '<S320>:7' */
10850 L4_MABX_B.stateChange = 1U;
10851 }
10852 }
10853 break;
10854 }
10855 }
10856
10857 /* End of Chart: '<S276>/Chart' */
10858
10859 /* DataTypeConversion: '<S276>/Data Type Conversion' */
10860 L4_MABX_B.DataTypeConversion_l1 = (L4_MABX_B.stateChange != 0);
10861
10862 /* UnitDelay: '<S314>/Unit_Delay1' */
10863 L4_MABX_B.Unit_Delay1_j = L4_MABX_DW.Unit_Delay1_DSTATE_db;
10864
10865 /* Logic: '<S314>/Logical Operator' incorporates:
10866 * Constant: '<S275>/zero'
10867 */
10868 L4_MABX_B.LogicalOperator_kh = (L4_MABX_P.zero_Value_g ||
10869 L4_MABX_B.Unit_Delay1_j);
10870
10871 /* MinMax: '<S314>/MinMax1' incorporates:
10872 * Constant: '<S275>/timeConstant'
10873 * Constant: '<S275>/timeConstant1'
10874 */
10875 DeltaTime = L4_MABX_P.timeConstant1_Value;
10876 PositionFinalLimited = L4_MABX_P.timeConstant_Value;
10877 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
10878 PositionFinalLimited = DeltaTime;
10879 }
10880
10881 L4_MABX_B.MinMax1_pr = PositionFinalLimited;
10882
10883 /* End of MinMax: '<S314>/MinMax1' */
10884
10885 /* Saturate: '<S314>/Saturation' */
10886 DeltaTime = L4_MABX_B.MinMax1_pr;
10887 Time56 = L4_MABX_P.Saturation_LowerSat_p2;
10888 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_o1;
10889 if (DeltaTime > PositionFinalLimited) {
10890 L4_MABX_B.Saturation_ns = PositionFinalLimited;
10891 } else if (DeltaTime < Time56) {
10892 L4_MABX_B.Saturation_ns = Time56;
10893 } else {
10894 L4_MABX_B.Saturation_ns = DeltaTime;
10895 }
10896
10897 /* End of Saturate: '<S314>/Saturation' */
10898
10899 /* Product: '<S314>/Divide' incorporates:
10900 * Constant: '<S275>/timeConstant1'
10901 */
10902 L4_MABX_B.Divide_o = L4_MABX_P.timeConstant1_Value / L4_MABX_B.Saturation_ns;
10903
10904 /* Product: '<S314>/Product2' */
10905 L4_MABX_B.Product2_b = L4_MABX_B.SFunction1_o3_gp * L4_MABX_B.Divide_o;
10906
10907 /* Sum: '<S314>/Subtract1' incorporates:
10908 * Constant: '<S314>/Constant1'
10909 */
10910 L4_MABX_B.Subtract1_ei = L4_MABX_P.Constant1_Value_n - L4_MABX_B.Divide_o;
10911
10912 /* UnitDelay: '<S314>/Unit_Delay2' */
10913 L4_MABX_B.Unit_Delay2_k = L4_MABX_DW.Unit_Delay2_DSTATE_d;
10914
10915 /* Product: '<S314>/Product1' */
10916 L4_MABX_B.Product1_n = L4_MABX_B.Subtract1_ei * L4_MABX_B.Unit_Delay2_k;
10917
10918 /* Sum: '<S314>/Add1' */
10919 L4_MABX_B.Add1_k = L4_MABX_B.Product2_b + L4_MABX_B.Product1_n;
10920
10921 /* Outputs for Atomic SubSystem: '<S314>/If_Then_Else' */
10922 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_kh, L4_MABX_B.SFunction1_o3_gp,
10923 L4_MABX_B.Add1_k, &L4_MABX_B.If_Then_Else_b);
10924
10925 /* End of Outputs for SubSystem: '<S314>/If_Then_Else' */
10926
10927 /* Abs: '<S275>/Abs' */
10928 L4_MABX_B.Abs_i = fabs(L4_MABX_B.SFunction1_o3_gp);
10929
10930 /* Sum: '<S275>/Add' */
10931 L4_MABX_B.Add_p = L4_MABX_B.Abs_i - L4_MABX_B.If_Then_Else_b.Switch;
10932
10933 /* RelationalOperator: '<S275>/highRateOfChange' incorporates:
10934 * Constant: '<S275>/rateOfChangeThreshold'
10935 */
10936 L4_MABX_B.highRateOfChange = (L4_MABX_B.Add_p >
10937 L4_MABX_P.rateOfChangeThreshold_Value);
10938
10939 /* RelationalOperator: '<S275>/closeToEdge' incorporates:
10940 * Constant: '<S275>/closeToLaneEdgeThreshold'
10941 */
10942 L4_MABX_B.closeToEdge = (L4_MABX_B.Abs_i >
10943 L4_MABX_P.closeToLaneEdgeThreshold_Value);
10944
10945 /* Logic: '<S275>/JumpNearEdge' */
10946 L4_MABX_B.JumpNearEdge = (L4_MABX_B.highRateOfChange && L4_MABX_B.closeToEdge);
10947
10948 /* UnitDelay: '<S313>/Delay Input1' */
10949 L4_MABX_B.Uk1_k2 = L4_MABX_DW.DelayInput1_DSTATE_f0;
10950
10951 /* RelationalOperator: '<S313>/FixPt Relational Operator' */
10952 L4_MABX_B.FixPtRelationalOperator_i = (L4_MABX_B.JumpNearEdge !=
10953 L4_MABX_B.Uk1_k2);
10954
10955 /* DataTypeConversion: '<S275>/Data Type Conversion' */
10956 L4_MABX_B.DataTypeConversion_dz = L4_MABX_B.FixPtRelationalOperator_i;
10957
10958 /* UnitDelay: '<S315>/Unit_Delay1' */
10959 L4_MABX_B.Unit_Delay1_f = L4_MABX_DW.Unit_Delay1_DSTATE_a;
10960
10961 /* Logic: '<S315>/Logical Operator' */
10962 L4_MABX_B.LogicalOperator_a = (L4_MABX_B.DataTypeConversion_dz ||
10963 L4_MABX_B.Unit_Delay1_f);
10964
10965 /* Switch: '<S275>/Switch' incorporates:
10966 * Constant: '<S275>/correction'
10967 * Constant: '<S275>/zero1'
10968 */
10969 if (L4_MABX_B.JumpNearEdge) {
10970 L4_MABX_B.Switch_g = L4_MABX_P.correction_Value;
10971 } else {
10972 L4_MABX_B.Switch_g = L4_MABX_P.zero1_Value;
10973 }
10974
10975 /* End of Switch: '<S275>/Switch' */
10976
10977 /* MinMax: '<S315>/MinMax1' incorporates:
10978 * Constant: '<S275>/timeConstant2'
10979 * Constant: '<S275>/timeConstant3'
10980 */
10981 DeltaTime = L4_MABX_P.timeConstant3_Value;
10982 PositionFinalLimited = L4_MABX_P.timeConstant2_Value;
10983 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
10984 PositionFinalLimited = DeltaTime;
10985 }
10986
10987 L4_MABX_B.MinMax1_a = PositionFinalLimited;
10988
10989 /* End of MinMax: '<S315>/MinMax1' */
10990
10991 /* Saturate: '<S315>/Saturation' */
10992 DeltaTime = L4_MABX_B.MinMax1_a;
10993 Time56 = L4_MABX_P.Saturation_LowerSat_ph;
10994 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_d;
10995 if (DeltaTime > PositionFinalLimited) {
10996 L4_MABX_B.Saturation_e = PositionFinalLimited;
10997 } else if (DeltaTime < Time56) {
10998 L4_MABX_B.Saturation_e = Time56;
10999 } else {
11000 L4_MABX_B.Saturation_e = DeltaTime;
11001 }
11002
11003 /* End of Saturate: '<S315>/Saturation' */
11004
11005 /* Product: '<S315>/Divide' incorporates:
11006 * Constant: '<S275>/timeConstant3'
11007 */
11008 L4_MABX_B.Divide_d = L4_MABX_P.timeConstant3_Value / L4_MABX_B.Saturation_e;
11009
11010 /* Product: '<S315>/Product2' */
11011 L4_MABX_B.Product2_fk = L4_MABX_B.Switch_g * L4_MABX_B.Divide_d;
11012
11013 /* Sum: '<S315>/Subtract1' incorporates:
11014 * Constant: '<S315>/Constant1'
11015 */
11016 L4_MABX_B.Subtract1_b = L4_MABX_P.Constant1_Value_j - L4_MABX_B.Divide_d;
11017
11018 /* UnitDelay: '<S315>/Unit_Delay2' */
11019 L4_MABX_B.Unit_Delay2_l = L4_MABX_DW.Unit_Delay2_DSTATE_i;
11020
11021 /* Product: '<S315>/Product1' */
11022 L4_MABX_B.Product1_c = L4_MABX_B.Subtract1_b * L4_MABX_B.Unit_Delay2_l;
11023
11024 /* Sum: '<S315>/Add1' */
11025 L4_MABX_B.Add1_p = L4_MABX_B.Product2_fk + L4_MABX_B.Product1_c;
11026
11027 /* Outputs for Atomic SubSystem: '<S315>/If_Then_Else' */
11028
11029 /* Constant: '<S275>/zero2' */
11030 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_a, L4_MABX_P.zero2_Value,
11031 L4_MABX_B.Add1_p, &L4_MABX_B.If_Then_Else_mk);
11032
11033 /* End of Outputs for SubSystem: '<S315>/If_Then_Else' */
11034
11035 /* Signum: '<S275>/Sign' */
11036 PositionFinalLimited = L4_MABX_B.SFunction1_o3_gp;
11037 if (PositionFinalLimited < 0.0) {
11038 L4_MABX_B.Sign = -1.0;
11039 } else if (PositionFinalLimited > 0.0) {
11040 L4_MABX_B.Sign = 1.0;
11041 } else if (PositionFinalLimited == 0.0) {
11042 L4_MABX_B.Sign = 0.0;
11043 } else {
11044 L4_MABX_B.Sign = (rtNaN);
11045 }
11046
11047 /* End of Signum: '<S275>/Sign' */
11048
11049 /* Product: '<S275>/Product' */
11050 L4_MABX_B.Product_cf = L4_MABX_B.If_Then_Else_mk.Switch * L4_MABX_B.Sign;
11051
11052 /* UnitDelay: '<S316>/Unit_Delay1' */
11053 L4_MABX_B.Unit_Delay1_d = L4_MABX_DW.Unit_Delay1_DSTATE_p;
11054
11055 /* Logic: '<S316>/Logical Operator' incorporates:
11056 * Constant: '<S275>/zero3'
11057 */
11058 L4_MABX_B.LogicalOperator_nz = (L4_MABX_P.zero3_Value ||
11059 L4_MABX_B.Unit_Delay1_d);
11060
11061 /* MinMax: '<S316>/MinMax1' incorporates:
11062 * Constant: '<S275>/timeConstant4'
11063 * Constant: '<S275>/timeConstant5'
11064 */
11065 DeltaTime = L4_MABX_P.timeConstant5_Value;
11066 PositionFinalLimited = L4_MABX_P.timeConstant4_Value;
11067 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
11068 PositionFinalLimited = DeltaTime;
11069 }
11070
11071 L4_MABX_B.MinMax1_e = PositionFinalLimited;
11072
11073 /* End of MinMax: '<S316>/MinMax1' */
11074
11075 /* Saturate: '<S316>/Saturation' */
11076 DeltaTime = L4_MABX_B.MinMax1_e;
11077 Time56 = L4_MABX_P.Saturation_LowerSat_k;
11078 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_ok;
11079 if (DeltaTime > PositionFinalLimited) {
11080 L4_MABX_B.Saturation_o = PositionFinalLimited;
11081 } else if (DeltaTime < Time56) {
11082 L4_MABX_B.Saturation_o = Time56;
11083 } else {
11084 L4_MABX_B.Saturation_o = DeltaTime;
11085 }
11086
11087 /* End of Saturate: '<S316>/Saturation' */
11088
11089 /* Product: '<S316>/Divide' incorporates:
11090 * Constant: '<S275>/timeConstant5'
11091 */
11092 L4_MABX_B.Divide_j = L4_MABX_P.timeConstant5_Value / L4_MABX_B.Saturation_o;
11093
11094 /* Product: '<S316>/Product2' */
11095 L4_MABX_B.Product2_nk = L4_MABX_B.SFunction1_o3_gp * L4_MABX_B.Divide_j;
11096
11097 /* Sum: '<S316>/Subtract1' incorporates:
11098 * Constant: '<S316>/Constant1'
11099 */
11100 L4_MABX_B.Subtract1_eh = L4_MABX_P.Constant1_Value_oi - L4_MABX_B.Divide_j;
11101
11102 /* UnitDelay: '<S316>/Unit_Delay2' */
11103 L4_MABX_B.Unit_Delay2_c = L4_MABX_DW.Unit_Delay2_DSTATE_p;
11104
11105 /* Product: '<S316>/Product1' */
11106 L4_MABX_B.Product1_cc = L4_MABX_B.Subtract1_eh * L4_MABX_B.Unit_Delay2_c;
11107
11108 /* Sum: '<S316>/Add1' */
11109 L4_MABX_B.Add1_f = L4_MABX_B.Product2_nk + L4_MABX_B.Product1_cc;
11110
11111 /* Outputs for Atomic SubSystem: '<S316>/If_Then_Else' */
11112 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_nz, L4_MABX_B.SFunction1_o3_gp,
11113 L4_MABX_B.Add1_f, &L4_MABX_B.If_Then_Else_lh);
11114
11115 /* End of Outputs for SubSystem: '<S316>/If_Then_Else' */
11116
11117 /* Switch: '<S275>/Switch1' */
11118 if (L4_MABX_B.JumpNearEdge) {
11119 L4_MABX_B.Switch1_f = L4_MABX_B.If_Then_Else_lh.Switch;
11120 } else {
11121 L4_MABX_B.Switch1_f = L4_MABX_B.SFunction1_o3_gp;
11122 }
11123
11124 /* End of Switch: '<S275>/Switch1' */
11125
11126 /* Sum: '<S275>/corrected Error' */
11127 L4_MABX_B.correctedError = L4_MABX_B.Product_cf + L4_MABX_B.Switch1_f;
11128
11129 /* RelationalOperator: '<S276>/Relational Operator' incorporates:
11130 * Constant: '<S276>/Constant'
11131 */
11132 L4_MABX_B.RelationalOperator_l5 = (L4_MABX_B.DataTypeConversion5_e3 >=
11133 L4_MABX_P.Constant_Value_mg);
11134
11135 /* Switch: '<S276>/Switch' incorporates:
11136 * Constant: '<S276>/Constant1'
11137 */
11138 if (L4_MABX_B.RelationalOperator_l5) {
11139 L4_MABX_B.Switch_h = L4_MABX_B.correctedError;
11140 } else {
11141 L4_MABX_B.Switch_h = L4_MABX_P.Constant1_Value_l;
11142 }
11143
11144 /* End of Switch: '<S276>/Switch' */
11145
11146 /* Outputs for Enabled SubSystem: '<S276>/Slew_at_event' incorporates:
11147 * EnablePort: '<S321>/Enable'
11148 */
11149 /* Constant: '<S276>/enable' */
11150 if (L4_MABX_P.enable_Value > 0.0) {
11151 if (!L4_MABX_DW.Slew_at_event_MODE_d) {
11152 /* InitializeConditions for UnitDelay: '<S323>/Unit_Delay' */
11153 L4_MABX_DW.Unit_Delay_DSTATE_bd = L4_MABX_P.Unit_Delay_InitialCondition_ls;
11154
11155 /* InitializeConditions for UnitDelay: '<S324>/Unit_Delay' */
11156 L4_MABX_DW.Unit_Delay_DSTATE_jt = L4_MABX_P.Unit_Delay_InitialCondition_i0;
11157
11158 /* InitializeConditions for UnitDelay: '<S327>/FixPt Unit Delay2' */
11159 L4_MABX_DW.FixPtUnitDelay2_DSTATE_j =
11160 L4_MABX_P.FixPtUnitDelay2_InitialCondit_c;
11161
11162 /* InitializeConditions for UnitDelay: '<S327>/FixPt Unit Delay1' */
11163 L4_MABX_DW.FixPtUnitDelay1_DSTATE_o =
11164 L4_MABX_P.FixPtUnitDelay1_InitialCondit_f;
11165
11166 /* InitializeConditions for UnitDelay: '<S322>/Unit_Delay' */
11167 L4_MABX_DW.Unit_Delay_DSTATE_ll = L4_MABX_P.Unit_Delay_InitialCondition_ld;
11168 L4_MABX_DW.Slew_at_event_MODE_d = true;
11169 }
11170
11171 /* UnitDelay: '<S323>/Unit_Delay' */
11172 L4_MABX_B.Unit_Delay_o3 = L4_MABX_DW.Unit_Delay_DSTATE_bd;
11173
11174 /* Logic: '<S323>/Logical Operator1' */
11175 L4_MABX_B.LogicalOperator1_gw = !L4_MABX_B.Unit_Delay_o3;
11176
11177 /* Logic: '<S323>/Logical Operator' */
11178 L4_MABX_B.LogicalOperator_d2 = (L4_MABX_B.DataTypeConversion_l1 &&
11179 L4_MABX_B.LogicalOperator1_gw);
11180
11181 /* UnitDelay: '<S324>/Unit_Delay' */
11182 L4_MABX_B.Unit_Delay_hj = L4_MABX_DW.Unit_Delay_DSTATE_jt;
11183
11184 /* Logic: '<S324>/Logical Operator1' */
11185 L4_MABX_B.LogicalOperator1_hp = (L4_MABX_B.LogicalOperator_d2 ||
11186 L4_MABX_B.Unit_Delay_hj);
11187
11188 /* UnitDelay: '<S327>/FixPt Unit Delay2' */
11189 L4_MABX_B.FixPtUnitDelay2_h5 = L4_MABX_DW.FixPtUnitDelay2_DSTATE_j;
11190
11191 /* UnitDelay: '<S327>/FixPt Unit Delay1' */
11192 L4_MABX_B.Xold_g = L4_MABX_DW.FixPtUnitDelay1_DSTATE_o;
11193
11194 /* Switch: '<S327>/Init' */
11195 if (L4_MABX_B.FixPtUnitDelay2_h5 != 0) {
11196 L4_MABX_B.Init_jw = L4_MABX_B.Switch_h;
11197 } else {
11198 L4_MABX_B.Init_jw = L4_MABX_B.Xold_g;
11199 }
11200
11201 /* End of Switch: '<S327>/Init' */
11202
11203 /* Abs: '<S324>/Abs' incorporates:
11204 * Constant: '<S276>/Constant3'
11205 */
11206 L4_MABX_B.Abs_a = fabs(L4_MABX_P.Constant3_Value_j);
11207
11208 /* Product: '<S324>/Product1' incorporates:
11209 * Constant: '<S276>/Constant2'
11210 */
11211 L4_MABX_B.Product1_i3 = L4_MABX_B.Abs_a * L4_MABX_P.Constant2_Value_p;
11212
11213 /* Sum: '<S324>/Add1' */
11214 L4_MABX_B.Add1_b0 = L4_MABX_B.Init_jw + L4_MABX_B.Product1_i3;
11215
11216 /* MinMax: '<S324>/MinMax2' */
11217 DeltaTime = L4_MABX_B.Switch_h;
11218 PositionFinalLimited = L4_MABX_B.Add1_b0;
11219 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
11220 PositionFinalLimited = DeltaTime;
11221 }
11222
11223 L4_MABX_B.MinMax2_l = PositionFinalLimited;
11224
11225 /* End of MinMax: '<S324>/MinMax2' */
11226
11227 /* Abs: '<S324>/Abs1' incorporates:
11228 * Constant: '<S276>/Constant4'
11229 */
11230 L4_MABX_B.Abs1_e = fabs(L4_MABX_P.Constant4_Value_bq);
11231
11232 /* Product: '<S324>/Product2' incorporates:
11233 * Constant: '<S276>/Constant2'
11234 */
11235 L4_MABX_B.Product2_k = L4_MABX_P.Constant2_Value_p * L4_MABX_B.Abs1_e;
11236
11237 /* Sum: '<S324>/Subtract1' */
11238 L4_MABX_B.Subtract1_g = L4_MABX_B.Init_jw - L4_MABX_B.Product2_k;
11239
11240 /* MinMax: '<S324>/MinMax1' */
11241 DeltaTime = L4_MABX_B.MinMax2_l;
11242 PositionFinalLimited = L4_MABX_B.Subtract1_g;
11243 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
11244 PositionFinalLimited = DeltaTime;
11245 }
11246
11247 L4_MABX_B.MinMax1_k = PositionFinalLimited;
11248
11249 /* End of MinMax: '<S324>/MinMax1' */
11250
11251 /* Outputs for Atomic SubSystem: '<S324>/If_Then_Else' */
11252 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_hp, L4_MABX_B.Switch_h,
11253 L4_MABX_B.MinMax1_k, &L4_MABX_B.If_Then_Else_n3);
11254
11255 /* End of Outputs for SubSystem: '<S324>/If_Then_Else' */
11256
11257 /* Sum: '<S321>/Subtract' */
11258 L4_MABX_B.Subtract_ij = L4_MABX_B.Switch_h -
11259 L4_MABX_B.If_Then_Else_n3.Switch;
11260
11261 /* Abs: '<S321>/Abs' */
11262 L4_MABX_B.Abs_eu = fabs(L4_MABX_B.Subtract_ij);
11263
11264 /* RelationalOperator: '<S321>/Relational Operator1' incorporates:
11265 * Constant: '<S321>/Constant1'
11266 */
11267 L4_MABX_B.RelationalOperator1_e = (L4_MABX_B.Abs_eu <=
11268 L4_MABX_P.Constant1_Value_ah);
11269
11270 /* Logic: '<S322>/Logical Operator3' */
11271 L4_MABX_B.LogicalOperator3_a = !L4_MABX_B.RelationalOperator1_e;
11272
11273 /* UnitDelay: '<S322>/Unit_Delay' */
11274 L4_MABX_B.Unit_Delay_ig = L4_MABX_DW.Unit_Delay_DSTATE_ll;
11275
11276 /* Logic: '<S322>/Logical Operator1' */
11277 L4_MABX_B.LogicalOperator1_joh = (L4_MABX_B.DataTypeConversion_l1 ||
11278 L4_MABX_B.Unit_Delay_ig);
11279
11280 /* Logic: '<S322>/Logical Operator' */
11281 L4_MABX_B.LogicalOperator_dm = (L4_MABX_B.LogicalOperator3_a &&
11282 L4_MABX_B.LogicalOperator1_joh);
11283
11284 /* Logic: '<S322>/Logical Operator2' */
11285 L4_MABX_B.LogicalOperator2_jq = !L4_MABX_B.LogicalOperator_dm;
11286
11287 /* RelationalOperator: '<S325>/min_relop' incorporates:
11288 * Constant: '<S276>/Constant3'
11289 * Constant: '<S325>/min_val'
11290 */
11291 L4_MABX_B.min_relop_d = (L4_MABX_P.CheckStaticLowerBound_min_n <=
11292 L4_MABX_P.Constant3_Value_j);
11293
11294 /* Assertion: '<S325>/Assertion' */
11295 utAssert(L4_MABX_B.min_relop_d);
11296 } else {
11297 if (L4_MABX_DW.Slew_at_event_MODE_d) {
11298 /* Disable for Outport: '<S321>/F_Out_slewing' */
11299 L4_MABX_B.LogicalOperator_dm = L4_MABX_P.F_Out_slewing_Y0;
11300
11301 /* Disable for Outport: '<S321>/Out' */
11302 L4_MABX_B.If_Then_Else_n3.Switch = L4_MABX_P.Out_Y0;
11303 L4_MABX_DW.Slew_at_event_MODE_d = false;
11304 }
11305 }
11306
11307 /* End of Constant: '<S276>/enable' */
11308 /* End of Outputs for SubSystem: '<S276>/Slew_at_event' */
11309
11310 /* Switch: '<S276>/Switch1' incorporates:
11311 * Constant: '<S276>/enableSlew'
11312 */
11313 if (L4_MABX_P.enableSlew_Value != 0.0) {
11314 L4_MABX_B.Switch1_j = L4_MABX_B.If_Then_Else_n3.Switch;
11315 } else {
11316 L4_MABX_B.Switch1_j = L4_MABX_B.Switch_h;
11317 }
11318
11319 /* End of Switch: '<S276>/Switch1' */
11320
11321 /* Gain: '<S80>/sign' */
11322 L4_MABX_B.SteerCtrlErrRaw = L4_MABX_P.sign_Gain * L4_MABX_B.Switch1_j;
11323
11324 /* DataTypeConversion: '<S80>/Data Type Conversion1' */
11325 L4_MABX_B.DataTypeConversion1_e = L4_MABX_B.SteerCtrlErrRaw;
11326
11327 /* UnitDelay: '<S278>/Unit Delay' */
11328 L4_MABX_B.UnitDelay_fm = L4_MABX_DW.UnitDelay_DSTATE_d;
11329
11330 /* Switch: '<S282>/Switch1' incorporates:
11331 * Constant: '<S278>/E'
11332 * Constant: '<S278>/R'
11333 * Switch: '<S280>/Switch1'
11334 */
11335 if (L4_MABX_P.R_Value) {
11336 /* DataTypeConversion: '<S278>/Data Type Conversion1' incorporates:
11337 * Constant: '<S278>/IV'
11338 */
11339 L4_MABX_B.DataTypeConversion1_b1 = (real32_T)L4_MABX_P.IV_Value;
11340 L4_MABX_B.Switch1_fi = L4_MABX_B.DataTypeConversion1_b1;
11341 } else {
11342 if (L4_MABX_P.E_Value_j) {
11343 /* DataTypeConversion: '<S278>/Data Type Conversion' incorporates:
11344 * Switch: '<S280>/Switch1'
11345 */
11346 L4_MABX_B.DataTypeConversion_ps = (real32_T)
11347 L4_MABX_B.DataTypeConversion1_e;
11348
11349 /* Sum: '<S278>/Add3' incorporates:
11350 * Switch: '<S280>/Switch1'
11351 */
11352 L4_MABX_B.Add3_j = L4_MABX_B.DataTypeConversion_ps -
11353 L4_MABX_B.UnitDelay_fm;
11354
11355 /* Product: '<S278>/Product1' incorporates:
11356 * Switch: '<S280>/Switch1'
11357 */
11358 L4_MABX_B.Product1_n2 = L4_MABX_B.Divide_nn * L4_MABX_B.Add3_j;
11359
11360 /* Sum: '<S278>/Add' incorporates:
11361 * Switch: '<S280>/Switch1'
11362 */
11363 L4_MABX_B.Add_f = L4_MABX_B.Product1_n2 + L4_MABX_B.UnitDelay_fm;
11364
11365 /* Switch: '<S280>/Switch1' */
11366 L4_MABX_B.Switch1_cw = L4_MABX_B.Add_f;
11367 } else {
11368 /* Switch: '<S280>/Switch1' */
11369 L4_MABX_B.Switch1_cw = L4_MABX_B.UnitDelay_fm;
11370 }
11371
11372 L4_MABX_B.Switch1_fi = L4_MABX_B.Switch1_cw;
11373 }
11374
11375 /* End of Switch: '<S282>/Switch1' */
11376
11377 /* DataTypeConversion: '<S279>/Conversion' */
11378 L4_MABX_B.Conversion = L4_MABX_B.Switch1_fi;
11379
11380 /* Abs: '<S80>/Abs' */
11381 L4_MABX_B.Abs_d = fabs(L4_MABX_B.Conversion);
11382
11383 /* Lookup_n-D: '<S80>/SteeringControlPGainErrorBased' */
11384 L4_MABX_B.SteeringControlPGainErrorBased = look1_binlxpw(L4_MABX_B.Abs_d,
11385 L4_MABX_P.SteeringControlPGainErrorBase_n,
11386 L4_MABX_P.SteeringControlPGainErrorBased_, 9U);
11387
11388 /* DataTypeConversion: '<S80>/Data Type Conversion' */
11389 L4_MABX_B.DataTypeConversion_ku = L4_MABX_B.SFunction1_o1_os;
11390
11391 /* Lookup_n-D: '<S80>/SteeringControlPGainSpeedFactor' */
11392 L4_MABX_B.SteeringControlPGainSpeedFactor = look1_binlxpw
11393 (L4_MABX_B.DataTypeConversion_ku, L4_MABX_P.SteeringControlPGainSpeedFact_i,
11394 L4_MABX_P.SteeringControlPGainSpeedFactor, 8U);
11395
11396 /* Product: '<S80>/Product1' */
11397 L4_MABX_B.SteerCtrlPgain = L4_MABX_B.SteeringControlPGainErrorBased *
11398 L4_MABX_B.SteeringControlPGainSpeedFactor;
11399
11400 /* Gain: '<S80>/Gain' */
11401 L4_MABX_B.Gain_c = L4_MABX_P.Gain_Gain_m * L4_MABX_B.SteerCtrlPgain;
11402
11403 /* Product: '<S289>/Product' */
11404 L4_MABX_B.Product_d = L4_MABX_B.Conversion * L4_MABX_B.Gain_c;
11405
11406 /* Product: '<S289>/Divide' incorporates:
11407 * Constant: '<S273>/Constant21'
11408 * Constant: '<S273>/SteeringControlIntGain'
11409 */
11410 L4_MABX_B.Divide_ag = L4_MABX_P.Constant21_Value /
11411 L4_MABX_P.SteeringControlIntGain_Value;
11412
11413 /* Product: '<S289>/Product1' */
11414 L4_MABX_B.Product1_hr = L4_MABX_B.Product_d * L4_MABX_B.Divide_ag;
11415
11416 /* UnitDelay: '<S288>/Unit Delay' */
11417 L4_MABX_B.UnitDelay_m = L4_MABX_DW.UnitDelay_DSTATE_m;
11418
11419 /* RelationalOperator: '<S288>/Relational Operator' incorporates:
11420 * Constant: '<S273>/Constant19'
11421 */
11422 L4_MABX_B.RelationalOperator_d = (L4_MABX_B.UnitDelay_m >=
11423 L4_MABX_P.Constant19_Value);
11424
11425 /* Switch: '<S288>/Switch' incorporates:
11426 * Constant: '<S288>/Constant3'
11427 */
11428 if (L4_MABX_B.RelationalOperator_d) {
11429 L4_MABX_B.Switch_o = L4_MABX_P.Constant3_Value_pw;
11430 } else {
11431 /* RelationalOperator: '<S288>/Relational Operator1' incorporates:
11432 * Constant: '<S273>/Constant20'
11433 */
11434 L4_MABX_B.RelationalOperator1_mf = (L4_MABX_B.UnitDelay_m <=
11435 L4_MABX_P.Constant20_Value);
11436
11437 /* Switch: '<S288>/Switch1' incorporates:
11438 * Constant: '<S288>/Constant'
11439 * Constant: '<S288>/Constant2'
11440 */
11441 if (L4_MABX_B.RelationalOperator1_mf) {
11442 L4_MABX_B.Switch1_m = L4_MABX_P.Constant2_Value_hu;
11443 } else {
11444 L4_MABX_B.Switch1_m = L4_MABX_P.Constant_Value_i;
11445 }
11446
11447 /* End of Switch: '<S288>/Switch1' */
11448 L4_MABX_B.Switch_o = L4_MABX_B.Switch1_m;
11449 }
11450
11451 /* End of Switch: '<S288>/Switch' */
11452
11453 /* RelationalOperator: '<S291>/Relational Operator5' incorporates:
11454 * Constant: '<S291>/Constant5'
11455 */
11456 L4_MABX_B.RelationalOperator5_f = (L4_MABX_B.Switch_o !=
11457 L4_MABX_P.Constant5_Value_o);
11458
11459 /* Signum: '<S291>/Sign1' */
11460 PositionFinalLimited = L4_MABX_B.Product1_hr;
11461 if (PositionFinalLimited < 0.0) {
11462 L4_MABX_B.Sign1 = -1.0;
11463 } else if (PositionFinalLimited > 0.0) {
11464 L4_MABX_B.Sign1 = 1.0;
11465 } else if (PositionFinalLimited == 0.0) {
11466 L4_MABX_B.Sign1 = 0.0;
11467 } else {
11468 L4_MABX_B.Sign1 = (rtNaN);
11469 }
11470
11471 /* End of Signum: '<S291>/Sign1' */
11472
11473 /* RelationalOperator: '<S291>/Relational Operator4' incorporates:
11474 * Constant: '<S291>/Constant4'
11475 */
11476 L4_MABX_B.RelationalOperator4_la = (L4_MABX_P.Constant4_Value_j ==
11477 L4_MABX_B.Sign1);
11478
11479 /* RelationalOperator: '<S291>/Relational Operator2' incorporates:
11480 * Constant: '<S291>/Constant2'
11481 */
11482 L4_MABX_B.RelationalOperator2_o = (L4_MABX_B.Switch_o !=
11483 L4_MABX_P.Constant2_Value_g);
11484
11485 /* Logic: '<S291>/Logical Operator1' */
11486 L4_MABX_B.LogicalOperator1_ji = (L4_MABX_B.RelationalOperator4_la &&
11487 L4_MABX_B.RelationalOperator2_o);
11488
11489 /* RelationalOperator: '<S291>/Relational Operator1' incorporates:
11490 * Constant: '<S291>/Constant1'
11491 */
11492 L4_MABX_B.RelationalOperator1_ie = (L4_MABX_B.Switch_o !=
11493 L4_MABX_P.Constant1_Value_ly);
11494
11495 /* RelationalOperator: '<S291>/Relational Operator3' incorporates:
11496 * Constant: '<S291>/Constant3'
11497 */
11498 L4_MABX_B.RelationalOperator3_p = (L4_MABX_P.Constant3_Value_g ==
11499 L4_MABX_B.Sign1);
11500
11501 /* Logic: '<S291>/Logical Operator2' */
11502 L4_MABX_B.LogicalOperator2_o = (L4_MABX_B.RelationalOperator1_ie &&
11503 L4_MABX_B.RelationalOperator3_p);
11504
11505 /* Logic: '<S291>/Logical Operator' */
11506 L4_MABX_B.LogicalOperator_bs = (L4_MABX_B.LogicalOperator1_ji ||
11507 L4_MABX_B.LogicalOperator2_o);
11508
11509 /* Logic: '<S291>/Logical Operator3' */
11510 L4_MABX_B.LogicalOperator3_oi = (L4_MABX_B.RelationalOperator5_f &&
11511 L4_MABX_B.LogicalOperator_bs);
11512
11513 /* Switch: '<S291>/Switch1' incorporates:
11514 * Constant: '<S291>/Constant'
11515 */
11516 if (L4_MABX_B.LogicalOperator3_oi) {
11517 L4_MABX_B.Switch1_jw = L4_MABX_B.Product1_hr;
11518 } else {
11519 L4_MABX_B.Switch1_jw = L4_MABX_P.Constant_Value_o;
11520 }
11521
11522 /* End of Switch: '<S291>/Switch1' */
11523
11524 /* UnitDelay: '<S289>/Unit Delay' */
11525 L4_MABX_B.UnitDelay_o = L4_MABX_DW.UnitDelay_DSTATE_m0;
11526
11527 /* Sum: '<S289>/Add' */
11528 L4_MABX_B.Add_px = L4_MABX_B.Switch1_jw + L4_MABX_B.UnitDelay_o;
11529
11530 /* Product: '<S289>/Divide1' incorporates:
11531 * Constant: '<S273>/Constant21'
11532 * Constant: '<S273>/SteeringControlDGain'
11533 */
11534 L4_MABX_B.Divide1_b = L4_MABX_P.SteeringControlDGain_Value *
11535 L4_MABX_B.Product_d / L4_MABX_P.Constant21_Value;
11536
11537 /* UnitDelay: '<S289>/Unit Delay1' */
11538 L4_MABX_B.UnitDelay1_e = L4_MABX_DW.UnitDelay1_DSTATE_k;
11539
11540 /* Sum: '<S289>/Add3' */
11541 L4_MABX_B.Add3 = L4_MABX_B.Divide1_b - L4_MABX_B.UnitDelay1_e;
11542
11543 /* Sum: '<S289>/Add1' */
11544 L4_MABX_B.Add1_mn = (L4_MABX_B.Product_d + L4_MABX_B.Add_px) + L4_MABX_B.Add3;
11545
11546 /* RelationalOperator: '<S290>/LowerRelop1' incorporates:
11547 * Constant: '<S273>/Constant19'
11548 */
11549 L4_MABX_B.LowerRelop1 = (L4_MABX_B.Add1_mn > L4_MABX_P.Constant19_Value);
11550
11551 /* RelationalOperator: '<S290>/UpperRelop' incorporates:
11552 * Constant: '<S273>/Constant20'
11553 */
11554 L4_MABX_B.UpperRelop = (L4_MABX_B.Add1_mn < L4_MABX_P.Constant20_Value);
11555
11556 /* Switch: '<S290>/Switch' incorporates:
11557 * Constant: '<S273>/Constant20'
11558 */
11559 if (L4_MABX_B.UpperRelop) {
11560 L4_MABX_B.Switch_p = L4_MABX_P.Constant20_Value;
11561 } else {
11562 L4_MABX_B.Switch_p = L4_MABX_B.Add1_mn;
11563 }
11564
11565 /* End of Switch: '<S290>/Switch' */
11566
11567 /* Switch: '<S290>/Switch2' incorporates:
11568 * Constant: '<S273>/Constant19'
11569 */
11570 if (L4_MABX_B.LowerRelop1) {
11571 L4_MABX_B.Switch2_i = L4_MABX_P.Constant19_Value;
11572 } else {
11573 L4_MABX_B.Switch2_i = L4_MABX_B.Switch_p;
11574 }
11575
11576 /* End of Switch: '<S290>/Switch2' */
11577
11578 /* RateTransition: '<S80>/TmpRTBAtrad2deg1Inport1' */
11579 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
11580 L4_MABX_B.previewSteeringAngle_b =
11581 L4_MABX_DW.TmpRTBAtrad2deg1Inport1_Buffer0;
11582 }
11583
11584 /* Gain: '<S80>/rad2deg1' */
11585 L4_MABX_B.rad2deg1 = L4_MABX_P.rad2deg1_Gain *
11586 L4_MABX_B.previewSteeringAngle_b;
11587
11588 /* Sum: '<S80>/Add2' incorporates:
11589 * Constant: '<S80>/steeringOffset'
11590 */
11591 L4_MABX_B.Add2 = (L4_MABX_B.rad2deg1 + L4_MABX_B.Switch2_i) +
11592 L4_MABX_P.steeringOffset_Value;
11593
11594 /* Lookup_n-D: '<S277>/1-D Lookup Table' */
11595 L4_MABX_B.uDLookupTable_a = look1_binlxpw(L4_MABX_B.DataTypeConversion_ku,
11596 L4_MABX_P.uDLookupTable_bp01Data_k, L4_MABX_P.uDLookupTable_tableData_b, 8U);
11597
11598 /* Product: '<S277>/AdjustedStanleyGain' incorporates:
11599 * Constant: '<S277>/stanleySteeringControlGain'
11600 */
11601 L4_MABX_B.AdjustedStanleyGain = L4_MABX_B.uDLookupTable_a *
11602 L4_MABX_P.stanleySteeringControlGain_Valu;
11603
11604 /* Step: '<S272>/Step' */
11605 PositionFinalLimited = L4_MABX_M->Timing.t[0];
11606 if (PositionFinalLimited < L4_MABX_P.Step_Time) {
11607 L4_MABX_B.Step = L4_MABX_P.Step_Y0;
11608 } else {
11609 L4_MABX_B.Step = L4_MABX_P.Step_YFinal;
11610 }
11611
11612 /* End of Step: '<S272>/Step' */
11613
11614 /* DataTypeConversion: '<S272>/Data Type Conversion' */
11615 L4_MABX_B.DataTypeConversion_dn = (L4_MABX_B.Step != 0.0);
11616
11617 /* Product: '<S283>/Divide' incorporates:
11618 * Constant: '<S272>/Constant'
11619 * Constant: '<S272>/Constant1'
11620 */
11621 L4_MABX_B.Divide_d0 = (real32_T)(L4_MABX_P.Constant1_Value_iy /
11622 L4_MABX_P.Constant_Value_d);
11623
11624 /* RateTransition: '<S80>/TmpRTBAtsignCurveOffsetInport1' */
11625 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
11626 L4_MABX_B.TmpRTBAtsignCurveOffsetInport1 =
11627 L4_MABX_DW.TmpRTBAtsignCurveOffsetInport1_;
11628 }
11629
11630 /* Gain: '<S80>/signCurveOffset' */
11631 L4_MABX_B.signCurveOffset = L4_MABX_P.signCurveOffset_Gain *
11632 L4_MABX_B.TmpRTBAtsignCurveOffsetInport1;
11633
11634 /* UnitDelay: '<S283>/Unit Delay' */
11635 L4_MABX_B.UnitDelay_lj = L4_MABX_DW.UnitDelay_DSTATE_m1;
11636
11637 /* Switch: '<S287>/Switch1' incorporates:
11638 * Constant: '<S283>/E'
11639 * Switch: '<S285>/Switch1'
11640 */
11641 if (L4_MABX_B.DataTypeConversion_dn) {
11642 /* DataTypeConversion: '<S283>/Data Type Conversion1' incorporates:
11643 * Constant: '<S283>/IV'
11644 */
11645 L4_MABX_B.DataTypeConversion1_g = (real32_T)L4_MABX_P.IV_Value_o;
11646 L4_MABX_B.Switch1_pb = L4_MABX_B.DataTypeConversion1_g;
11647 } else {
11648 if (L4_MABX_P.E_Value_ct) {
11649 /* DataTypeConversion: '<S283>/Data Type Conversion' incorporates:
11650 * Switch: '<S285>/Switch1'
11651 */
11652 L4_MABX_B.DataTypeConversion_mv = (real32_T)L4_MABX_B.signCurveOffset;
11653
11654 /* Sum: '<S283>/Add3' incorporates:
11655 * Switch: '<S285>/Switch1'
11656 */
11657 L4_MABX_B.Add3_p = L4_MABX_B.DataTypeConversion_mv -
11658 L4_MABX_B.UnitDelay_lj;
11659
11660 /* Product: '<S283>/Product1' incorporates:
11661 * Switch: '<S285>/Switch1'
11662 */
11663 L4_MABX_B.Product1_ce = L4_MABX_B.Divide_d0 * L4_MABX_B.Add3_p;
11664
11665 /* Sum: '<S283>/Add' incorporates:
11666 * Switch: '<S285>/Switch1'
11667 */
11668 L4_MABX_B.Add_a = L4_MABX_B.Product1_ce + L4_MABX_B.UnitDelay_lj;
11669
11670 /* Switch: '<S285>/Switch1' */
11671 L4_MABX_B.Switch1_aq = L4_MABX_B.Add_a;
11672 } else {
11673 /* Switch: '<S285>/Switch1' */
11674 L4_MABX_B.Switch1_aq = L4_MABX_B.UnitDelay_lj;
11675 }
11676
11677 L4_MABX_B.Switch1_pb = L4_MABX_B.Switch1_aq;
11678 }
11679
11680 /* End of Switch: '<S287>/Switch1' */
11681
11682 /* DataTypeConversion: '<S284>/Conversion' */
11683 L4_MABX_B.Conversion_b = L4_MABX_B.Switch1_pb;
11684
11685 /* Gain: '<S80>/mm2m' */
11686 L4_MABX_B.mm2m = L4_MABX_P.mm2m_Gain * L4_MABX_B.correctedError;
11687
11688 /* Switch: '<S80>/Switch3' incorporates:
11689 * Constant: '<S80>/usePIDyForStanley'
11690 */
11691 if (L4_MABX_P.usePIDyForStanley_Value != 0.0) {
11692 L4_MABX_B.Switch3 = L4_MABX_B.Switch2_i;
11693 } else {
11694 L4_MABX_B.Switch3 = L4_MABX_B.mm2m;
11695 }
11696
11697 /* End of Switch: '<S80>/Switch3' */
11698
11699 /* Gain: '<S80>/sign3' */
11700 L4_MABX_B.sign3 = L4_MABX_P.sign3_Gain * L4_MABX_B.Switch3;
11701
11702 /* Sum: '<S80>/crossTrackError' */
11703 L4_MABX_B.crossTrackError = L4_MABX_B.Conversion_b + L4_MABX_B.sign3;
11704
11705 /* Product: '<S277>/Product' */
11706 L4_MABX_B.Product_p = L4_MABX_B.AdjustedStanleyGain *
11707 L4_MABX_B.crossTrackError;
11708
11709 /* Saturate: '<S277>/Saturation' */
11710 DeltaTime = L4_MABX_B.DataTypeConversion_ku;
11711 Time56 = L4_MABX_P.Saturation_LowerSat_bq;
11712 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_e;
11713 if (DeltaTime > PositionFinalLimited) {
11714 L4_MABX_B.Saturation_a = PositionFinalLimited;
11715 } else if (DeltaTime < Time56) {
11716 L4_MABX_B.Saturation_a = Time56;
11717 } else {
11718 L4_MABX_B.Saturation_a = DeltaTime;
11719 }
11720
11721 /* End of Saturate: '<S277>/Saturation' */
11722
11723 /* Gain: '<S277>/kph2mps_' */
11724 L4_MABX_B.kph2mps_ = L4_MABX_P.kph2mps_Gain * L4_MABX_B.Saturation_a;
11725
11726 /* Trigonometry: '<S277>/Trigonometric Function' */
11727 L4_MABX_B.TrigonometricFunction_p = rt_atan2d_snf(L4_MABX_B.Product_p,
11728 L4_MABX_B.kph2mps_);
11729
11730 /* Gain: '<S80>/deg2rad1' */
11731 L4_MABX_B.deg2rad1 = L4_MABX_P.deg2rad1_Gain * L4_MABX_B.uDLookupTable1;
11732
11733 /* RateTransition: '<S277>/TmpRTBAtAdd2Inport2' */
11734 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
11735 L4_MABX_B.TmpRTBAtAdd2Inport2 = L4_MABX_DW.TmpRTBAtAdd2Inport2_Buffer0;
11736 }
11737
11738 /* Sum: '<S277>/Add2' */
11739 L4_MABX_B.Add2_g = L4_MABX_B.deg2rad1 - L4_MABX_B.TmpRTBAtAdd2Inport2;
11740
11741 /* Gain: '<S277>/desHeadingWeight' */
11742 L4_MABX_B.desHeadingWeight = L4_MABX_P.desHeadingWeight_Gain *
11743 L4_MABX_B.Add2_g;
11744
11745 /* Sum: '<S277>/Add1' */
11746 L4_MABX_B.Add1_h = L4_MABX_B.TrigonometricFunction_p +
11747 L4_MABX_B.desHeadingWeight;
11748
11749 /* DataTypeConversion: '<S299>/Data Type Conversion' incorporates:
11750 * Constant: '<S299>/RATE_LIMITER_ENABLE_APV'
11751 */
11752 L4_MABX_B.DataTypeConversion_l = (real_T)RATE_LIMITER_ENABLE_APV;
11753
11754 /* Lookup_n-D: '<S299>/Saturation Speed Lookup' */
11755 L4_MABX_B.SaturationSpeedLookup = look1_binlcapw
11756 (L4_MABX_B.DataTypeConversion_ku, L4_MABX_P.SaturationSpeedLookup_bp01Data,
11757 L4_MABX_P.SaturationSpeedLookup_tableData, 5U);
11758
11759 /* RelationalOperator: '<S293>/Relational Operator1' incorporates:
11760 * Constant: '<S274>/Constant3'
11761 */
11762 L4_MABX_B.RelationalOperator1_gr = (Curvature >=
11763 Lateral_Control_Curvature_Limit);
11764
11765 /* RelationalOperator: '<S293>/Relational Operator' incorporates:
11766 * Constant: '<S274>/Constant5'
11767 */
11768 PositionFinalLimited = -Lateral_Control_Curvature_Limit;
11769 L4_MABX_B.RelationalOperator_o = (Curvature <= PositionFinalLimited);
11770
11771 /* Outputs for Atomic SubSystem: '<S293>/If_Then_Else1' */
11772 /* Constant: '<S274>/Constant5' */
11773 PositionFinalLimited = -Lateral_Control_Curvature_Limit;
11774 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_o, PositionFinalLimited,
11775 Curvature, &L4_MABX_B.If_Then_Else1_dd);
11776
11777 /* End of Outputs for SubSystem: '<S293>/If_Then_Else1' */
11778
11779 /* Outputs for Atomic SubSystem: '<S293>/If_Then_Else' */
11780
11781 /* Constant: '<S274>/Constant3' */
11782 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_gr,
11783 Lateral_Control_Curvature_Limit,
11784 L4_MABX_B.If_Then_Else1_dd.Switch,
11785 &L4_MABX_B.If_Then_Else_p);
11786
11787 /* End of Outputs for SubSystem: '<S293>/If_Then_Else' */
11788
11789 /* Abs: '<S299>/Abs' */
11790 L4_MABX_B.Abs_ig = fabs(L4_MABX_B.If_Then_Else_p.Switch);
11791
11792 /* Lookup_n-D: '<S299>/Curvature Lookup Table' */
11793 L4_MABX_B.RateCurvature = look1_binlcapw(L4_MABX_B.Abs_ig,
11794 L4_MABX_P.CurvatureLookupTable_bp01Data,
11795 L4_MABX_P.CurvatureLookupTable_tableData, 4U);
11796
11797 /* DiscreteTransferFcn: '<S274>/Error 5Hz LPF' */
11798 PositionFinalLimited = L4_MABX_P.Error5HzLPF_NumCoef[1] *
11799 L4_MABX_DW.Error5HzLPF_states[0];
11800 PositionFinalLimited += L4_MABX_P.Error5HzLPF_NumCoef[2] *
11801 L4_MABX_DW.Error5HzLPF_states[1];
11802 PositionFinalLimited += L4_MABX_P.Error5HzLPF_NumCoef[3] *
11803 L4_MABX_DW.Error5HzLPF_states[2];
11804 L4_MABX_B.Lateral_Control_Heading_Error = PositionFinalLimited;
11805
11806 /* Abs: '<S299>/Abs1' */
11807 L4_MABX_B.Abs1_ft = fabs(L4_MABX_B.Lateral_Control_Heading_Error);
11808
11809 /* Lookup_n-D: '<S299>/Error Lookup Table' */
11810 L4_MABX_B.RateError = look1_binlcapw(L4_MABX_B.Abs1_ft,
11811 L4_MABX_P.ErrorLookupTable_bp01Data, L4_MABX_P.ErrorLookupTable_tableData,
11812 4U);
11813
11814 /* MinMax: '<S299>/Max' */
11815 DeltaTime = L4_MABX_B.RateCurvature;
11816 PositionFinalLimited = L4_MABX_B.RateError;
11817 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
11818 PositionFinalLimited = DeltaTime;
11819 }
11820
11821 L4_MABX_B.Max = PositionFinalLimited;
11822
11823 /* End of MinMax: '<S299>/Max' */
11824
11825 /* Lookup_n-D: '<S299>/Speed Lookup Table' */
11826 L4_MABX_B.RateSpeed = look1_binlcapw(L4_MABX_B.DataTypeConversion_ku,
11827 L4_MABX_P.SpeedLookupTable_bp01Data, L4_MABX_P.SpeedLookupTable_tableData,
11828 5U);
11829
11830 /* MinMax: '<S299>/Min' */
11831 DeltaTime = L4_MABX_B.Max;
11832 PositionFinalLimited = L4_MABX_B.RateSpeed;
11833 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
11834 PositionFinalLimited = DeltaTime;
11835 }
11836
11837 L4_MABX_B.Min = PositionFinalLimited;
11838
11839 /* End of MinMax: '<S299>/Min' */
11840
11841 /* RateLimiter: '<S299>/Limit Rate Limiter' */
11842 PositionFinalLimited = L4_MABX_B.Min - L4_MABX_DW.PrevY;
11843 if (PositionFinalLimited > L4_MABX_P.LimitRateLimiter_RisingLim) {
11844 L4_MABX_B.RateLimitUpper = L4_MABX_DW.PrevY +
11845 L4_MABX_P.LimitRateLimiter_RisingLim;
11846 } else if (PositionFinalLimited < L4_MABX_P.LimitRateLimiter_FallingLim) {
11847 L4_MABX_B.RateLimitUpper = L4_MABX_DW.PrevY +
11848 L4_MABX_P.LimitRateLimiter_FallingLim;
11849 } else {
11850 L4_MABX_B.RateLimitUpper = L4_MABX_B.Min;
11851 }
11852
11853 L4_MABX_DW.PrevY = L4_MABX_B.RateLimitUpper;
11854
11855 /* End of RateLimiter: '<S299>/Limit Rate Limiter' */
11856
11857 /* SampleTimeMath: '<S308>/sample time'
11858 *
11859 * About '<S308>/sample time':
11860 * y = K where K = ( w * Ts )
11861 */
11862 L4_MABX_B.sampletime = L4_MABX_P.sampletime_WtEt;
11863
11864 /* Product: '<S308>/delta rise limit' */
11865 L4_MABX_B.deltariselimit = L4_MABX_B.RateLimitUpper * L4_MABX_B.sampletime;
11866
11867 /* RelationalOperator: '<S295>/Relational Operator1' incorporates:
11868 * Constant: '<S274>/Constant'
11869 */
11870 L4_MABX_B.RelationalOperator1_p = (L4_MABX_B.Lateral_Control_Heading_Error >=
11871 Lateral_Control_Error_Limit);
11872
11873 /* RelationalOperator: '<S295>/Relational Operator' incorporates:
11874 * Constant: '<S274>/Constant1'
11875 */
11876 PositionFinalLimited = -Lateral_Control_Error_Limit;
11877 L4_MABX_B.RelationalOperator_h = (L4_MABX_B.Lateral_Control_Heading_Error <=
11878 PositionFinalLimited);
11879
11880 /* Outputs for Atomic SubSystem: '<S295>/If_Then_Else1' */
11881 /* Constant: '<S274>/Constant1' */
11882 PositionFinalLimited = -Lateral_Control_Error_Limit;
11883 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_h, PositionFinalLimited,
11884 L4_MABX_B.Lateral_Control_Heading_Error,
11885 &L4_MABX_B.If_Then_Else1_k);
11886
11887 /* End of Outputs for SubSystem: '<S295>/If_Then_Else1' */
11888
11889 /* Outputs for Atomic SubSystem: '<S295>/If_Then_Else' */
11890
11891 /* Constant: '<S274>/Constant' */
11892 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_p,
11893 Lateral_Control_Error_Limit,
11894 L4_MABX_B.If_Then_Else1_k.Switch,
11895 &L4_MABX_B.If_Then_Else_pn);
11896
11897 /* End of Outputs for SubSystem: '<S295>/If_Then_Else' */
11898
11899 /* Outputs for Atomic SubSystem: '<S274>/If_Then_Else1' */
11900
11901 /* Constant: '<S274>/Zero' */
11902 L4_MABX_If_Then_Else_g(AutonomousEnabled, L4_MABX_B.If_Then_Else_pn.Switch,
11903 L4_MABX_P.Zero_Value, &L4_MABX_B.If_Then_Else1_m);
11904
11905 /* End of Outputs for SubSystem: '<S274>/If_Then_Else1' */
11906
11907 /* Gain: '<S298>/Proportional Gain' */
11908 L4_MABX_B.ProportionalGain = Lateral_Control_P *
11909 L4_MABX_B.If_Then_Else1_m.Switch;
11910
11911 /* DiscreteIntegrator: '<S298>/Integrator' */
11912 if (AutonomousEnabled && (L4_MABX_DW.Integrator_PrevResetState <= 0)) {
11913 L4_MABX_DW.Integrator_DSTATE = L4_MABX_P.Integrator_IC;
11914 }
11915
11916 L4_MABX_B.Integrator = L4_MABX_DW.Integrator_DSTATE;
11917
11918 /* End of DiscreteIntegrator: '<S298>/Integrator' */
11919
11920 /* Gain: '<S298>/Derivative Gain' */
11921 L4_MABX_B.DerivativeGain = Lateral_Control_D *
11922 L4_MABX_B.If_Then_Else1_m.Switch;
11923
11924 /* DiscreteIntegrator: '<S298>/Filter' */
11925 if (AutonomousEnabled && (L4_MABX_DW.Filter_PrevResetState <= 0)) {
11926 L4_MABX_DW.Filter_DSTATE = L4_MABX_P.Filter_IC;
11927 }
11928
11929 L4_MABX_B.Filter = L4_MABX_DW.Filter_DSTATE;
11930
11931 /* End of DiscreteIntegrator: '<S298>/Filter' */
11932
11933 /* Sum: '<S298>/SumD' */
11934 L4_MABX_B.SumD = L4_MABX_B.DerivativeGain - L4_MABX_B.Filter;
11935
11936 /* Gain: '<S298>/Filter Coefficient' */
11937 L4_MABX_B.FilterCoefficient = L4_MABX_P.PIDController_N * L4_MABX_B.SumD;
11938
11939 /* Sum: '<S298>/Sum' */
11940 L4_MABX_B.Sum_c = (L4_MABX_B.ProportionalGain + L4_MABX_B.Integrator) +
11941 L4_MABX_B.FilterCoefficient;
11942
11943 /* Saturate: '<S298>/Saturate' */
11944 DeltaTime = L4_MABX_B.Sum_c;
11945 Time56 = L4_MABX_P.PIDController_LowerSaturationLi;
11946 PositionFinalLimited = L4_MABX_P.PIDController_UpperSaturationLi;
11947 if (DeltaTime > PositionFinalLimited) {
11948 L4_MABX_B.Saturate = PositionFinalLimited;
11949 } else if (DeltaTime < Time56) {
11950 L4_MABX_B.Saturate = Time56;
11951 } else {
11952 L4_MABX_B.Saturate = DeltaTime;
11953 }
11954
11955 /* End of Saturate: '<S298>/Saturate' */
11956
11957 /* UnitDelay: '<S300>/Delay Input' */
11958 L4_MABX_B.Uk1_m = L4_MABX_DW.DelayInput_DSTATE;
11959
11960 /* Gain: '<S300>/GainZero' */
11961 L4_MABX_B.ZeroUk1 = Lateral_Control_Zero * L4_MABX_B.Uk1_m;
11962
11963 /* UnitDelay: '<S300>/Delay Output' */
11964 L4_MABX_B.Yk1 = L4_MABX_DW.DelayOutput_DSTATE;
11965
11966 /* Gain: '<S300>/GainPole' */
11967 L4_MABX_B.PoleYk1 = Lateral_Control_Pole * L4_MABX_B.Yk1;
11968
11969 /* Sum: '<S300>/Sum' */
11970 L4_MABX_B.PoleYk1UkZeroUk1 = (L4_MABX_B.Saturate - L4_MABX_B.ZeroUk1) +
11971 L4_MABX_B.PoleYk1;
11972
11973 /* DataTypeConversion: '<S300>/Downcast' */
11974 L4_MABX_B.Downcast = L4_MABX_B.PoleYk1UkZeroUk1;
11975
11976 /* Lookup_n-D: '<S274>/1-D Lookup Table' */
11977 L4_MABX_B.uDLookupTable_j = look1_binlxpw(ReAX_ActualHandwheelPos,
11978 L4_MABX_P.uDLookupTable_bp01Data_d, L4_MABX_P.uDLookupTable_tableData_d, 71U);
11979
11980 /* Gain: '<S274>/deg2rad' */
11981 L4_MABX_B.deg2rad = L4_MABX_P.deg2rad_Gain_l * L4_MABX_B.uDLookupTable_j;
11982
11983 /* Gain: '<S274>/PGain' */
11984 L4_MABX_B.PGain = Lateral_Control_P * L4_MABX_B.If_Then_Else_pn.Switch;
11985
11986 /* DiscreteTransferFcn: '<S274>/5Hz LPF' */
11987 PositionFinalLimited = L4_MABX_P.uHzLPF_NumCoef[1] * L4_MABX_DW.uHzLPF_states
11988 [0];
11989 PositionFinalLimited += L4_MABX_P.uHzLPF_NumCoef[2] *
11990 L4_MABX_DW.uHzLPF_states[1];
11991 PositionFinalLimited += L4_MABX_P.uHzLPF_NumCoef[3] *
11992 L4_MABX_DW.uHzLPF_states[2];
11993 L4_MABX_B.uHzLPF = PositionFinalLimited;
11994
11995 /* Sum: '<S274>/Sum3' */
11996 L4_MABX_B.Sum3 = (L4_MABX_B.deg2rad - L4_MABX_B.PGain) - L4_MABX_B.uHzLPF;
11997
11998 /* DiscreteIntegrator: '<S292>/Discrete-Time Integrator' */
11999 if (L4_MABX_DW.DiscreteTimeIntegrator_IC_LOADI != 0) {
12000 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE = L4_MABX_B.Sum3;
12001 }
12002
12003 if (AutonomousEnabled && (L4_MABX_DW.DiscreteTimeIntegrator_PrevRese <= 0)) {
12004 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE = L4_MABX_B.Sum3;
12005 }
12006
12007 L4_MABX_B.DiscreteTimeIntegrator = L4_MABX_DW.DiscreteTimeIntegrator_DSTATE;
12008
12009 /* End of DiscreteIntegrator: '<S292>/Discrete-Time Integrator' */
12010
12011 /* Sum: '<S274>/Sum4' */
12012 L4_MABX_B.Sum4 = L4_MABX_B.Downcast + L4_MABX_B.DiscreteTimeIntegrator;
12013
12014 /* Sum: '<S274>/Sum1' */
12015 Lateral_Control_Output = L4_MABX_B.Sum4 + L4_MABX_B.uHzLPF;
12016
12017 /* UnitDelay: '<S308>/Delay Input2' */
12018 L4_MABX_B.Yk1_p = L4_MABX_DW.DelayInput2_DSTATE;
12019
12020 /* Sum: '<S308>/Difference Inputs1' */
12021 L4_MABX_B.UkYk1 = Lateral_Control_Output - L4_MABX_B.Yk1_p;
12022
12023 /* RelationalOperator: '<S310>/LowerRelop1' */
12024 L4_MABX_B.LowerRelop1_l = (L4_MABX_B.UkYk1 > L4_MABX_B.deltariselimit);
12025
12026 /* Gain: '<S299>/Gain3' */
12027 L4_MABX_B.RateLimitLower = L4_MABX_P.Gain3_Gain_p * L4_MABX_B.RateLimitUpper;
12028
12029 /* Product: '<S308>/delta fall limit' */
12030 L4_MABX_B.deltafalllimit = L4_MABX_B.RateLimitLower * L4_MABX_B.sampletime;
12031
12032 /* RelationalOperator: '<S310>/UpperRelop' */
12033 L4_MABX_B.UpperRelop_k = (L4_MABX_B.UkYk1 < L4_MABX_B.deltafalllimit);
12034
12035 /* Switch: '<S310>/Switch' */
12036 if (L4_MABX_B.UpperRelop_k) {
12037 L4_MABX_B.Switch_f = L4_MABX_B.deltafalllimit;
12038 } else {
12039 L4_MABX_B.Switch_f = L4_MABX_B.UkYk1;
12040 }
12041
12042 /* End of Switch: '<S310>/Switch' */
12043
12044 /* Switch: '<S310>/Switch2' */
12045 if (L4_MABX_B.LowerRelop1_l) {
12046 L4_MABX_B.Switch2_f = L4_MABX_B.deltariselimit;
12047 } else {
12048 L4_MABX_B.Switch2_f = L4_MABX_B.Switch_f;
12049 }
12050
12051 /* End of Switch: '<S310>/Switch2' */
12052
12053 /* Sum: '<S308>/Difference Inputs2' */
12054 L4_MABX_B.DifferenceInputs2 = L4_MABX_B.Switch2_f + L4_MABX_B.Yk1_p;
12055
12056 /* RelationalOperator: '<S309>/LowerRelop1' */
12057 L4_MABX_B.LowerRelop1_e = (L4_MABX_B.DifferenceInputs2 >
12058 L4_MABX_B.SaturationSpeedLookup);
12059
12060 /* Gain: '<S299>/Gain1' */
12061 L4_MABX_B.Gain1_fi = L4_MABX_P.Gain1_Gain_p * L4_MABX_B.SaturationSpeedLookup;
12062
12063 /* RelationalOperator: '<S309>/UpperRelop' */
12064 L4_MABX_B.UpperRelop_f = (L4_MABX_B.DifferenceInputs2 < L4_MABX_B.Gain1_fi);
12065
12066 /* Switch: '<S309>/Switch' */
12067 if (L4_MABX_B.UpperRelop_f) {
12068 L4_MABX_B.Switch_hx = L4_MABX_B.Gain1_fi;
12069 } else {
12070 L4_MABX_B.Switch_hx = L4_MABX_B.DifferenceInputs2;
12071 }
12072
12073 /* End of Switch: '<S309>/Switch' */
12074
12075 /* Switch: '<S309>/Switch2' */
12076 if (L4_MABX_B.LowerRelop1_e) {
12077 L4_MABX_B.Switch2_k = L4_MABX_B.SaturationSpeedLookup;
12078 } else {
12079 L4_MABX_B.Switch2_k = L4_MABX_B.Switch_hx;
12080 }
12081
12082 /* End of Switch: '<S309>/Switch2' */
12083
12084 /* Outputs for Atomic SubSystem: '<S299>/If_Then_Else' */
12085 L4_MABX_If_Then_Else_c(L4_MABX_B.DataTypeConversion_l, L4_MABX_B.Switch2_k,
12086 Lateral_Control_Output, &L4_MABX_B.If_Then_Else_co);
12087
12088 /* End of Outputs for SubSystem: '<S299>/If_Then_Else' */
12089
12090 /* SignalConversion: '<S299>/TmpSignal ConversionAtIf_Then_ElseOutport1' */
12091 Lateral_Control_Rate_Limiter_Output = L4_MABX_B.If_Then_Else_co.Switch;
12092
12093 /* Outputs for Atomic SubSystem: '<S274>/If_Then_Else' */
12094 L4_MABX_If_Then_Else_g(AutonomousEnabled, Lateral_Control_Rate_Limiter_Output,
12095 L4_MABX_B.deg2rad, &L4_MABX_B.If_Then_Else_m);
12096
12097 /* End of Outputs for SubSystem: '<S274>/If_Then_Else' */
12098
12099 /* DataTypeConversion: '<S80>/Data Type Conversion6' */
12100 L4_MABX_B.DataTypeConversion6_p = L4_MABX_B.If_Then_Else_m.Switch;
12101
12102 /* Gain: '<S80>/rad2deg' */
12103 L4_MABX_B.rad2deg = L4_MABX_P.rad2deg_Gain * L4_MABX_B.DataTypeConversion6_p;
12104
12105 /* Gain: '<S80>/sign1' */
12106 SteerCommandDeg = L4_MABX_P.sign1_Gain * L4_MABX_B.rad2deg;
12107
12108 /* MultiPortSwitch: '<S80>/Multiport Switch1' incorporates:
12109 * Constant: '<S80>/LONG_SPEED_SRC_SELECTOR_APV'
12110 * Constant: '<S80>/SteeringOverrideVal1'
12111 */
12112 switch (LONG_SPEED_SRC_SELECTOR_APV) {
12113 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_GPS_PATH:
12114 /* MultiPortSwitch: '<S80>/Multiport Switch' incorporates:
12115 * Constant: '<S80>/SteeringControlSRC'
12116 * Constant: '<S80>/SteeringOverrideVal'
12117 */
12118 switch (L4_MABX_P.SteeringControlSRC_Value) {
12119 case 0:
12120 L4_MABX_B.MultiportSwitch_f = L4_MABX_P.SteeringOverrideVal_Value;
12121 break;
12122
12123 case 1:
12124 L4_MABX_B.MultiportSwitch_f = L4_MABX_B.Switch2_i;
12125 break;
12126
12127 case 2:
12128 /* DataTypeConversion: '<S80>/Data Type Conversion2' */
12129 L4_MABX_B.DataTypeConversion2_ox = L4_MABX_B.Add2;
12130 L4_MABX_B.MultiportSwitch_f = L4_MABX_B.DataTypeConversion2_ox;
12131 break;
12132
12133 default:
12134 /* DataTypeConversion: '<S80>/Data Type Conversion3' */
12135 L4_MABX_B.DataTypeConversion3_pl = L4_MABX_B.Add1_h;
12136 L4_MABX_B.MultiportSwitch_f = L4_MABX_B.DataTypeConversion3_pl;
12137 break;
12138 }
12139
12140 /* End of MultiPortSwitch: '<S80>/Multiport Switch' */
12141
12142 /* Gain: '<S80>/rad2deg2' */
12143 L4_MABX_B.rad2deg2 = L4_MABX_P.rad2deg2_Gain * L4_MABX_B.MultiportSwitch_f;
12144 L4_MABX_B.MultiportSwitch1 = L4_MABX_B.rad2deg2;
12145 break;
12146
12147 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_OVERRIDE:
12148 L4_MABX_B.MultiportSwitch1 = L4_MABX_P.SteeringOverrideVal1_Value;
12149 break;
12150
12151 default:
12152 L4_MABX_B.MultiportSwitch1 = SteerCommandDeg;
12153 break;
12154 }
12155
12156 /* End of MultiPortSwitch: '<S80>/Multiport Switch1' */
12157
12158 /* Lookup_n-D: '<S270>/1D_Lookup_Table' */
12159 L4_MABX_B.uD_Lookup_Table_a = look1_binlcapw(L4_MABX_B.MultiportSwitch1,
12160 STEERCTRL_WHEEL_ANGLE_STEP_MPV, STEERCTRL_WHEEL_ANGLE_DATA_MPV, 71U);
12161
12162 /* DataTypeConversion: '<S80>/Data Type Conversion4' */
12163 L4_MABX_B.numLanePoints_j = L4_MABX_B.DataTypeConversion5_e3;
12164
12165 /* DiscreteIntegrator: '<S80>/Discrete-Time Integrator' incorporates:
12166 * Constant: '<S80>/ResetIntegrator'
12167 */
12168 if ((L4_MABX_P.ResetIntegrator_Value != 0.0) ||
12169 (L4_MABX_DW.DiscreteTimeIntegrator_PrevRe_e != 0)) {
12170 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e =
12171 L4_MABX_P.DiscreteTimeIntegrator_IC;
12172 }
12173
12174 if (L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e >=
12175 L4_MABX_P.DiscreteTimeIntegrator_UpperSat) {
12176 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e =
12177 L4_MABX_P.DiscreteTimeIntegrator_UpperSat;
12178 } else {
12179 if (L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e <=
12180 L4_MABX_P.DiscreteTimeIntegrator_LowerSat) {
12181 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e =
12182 L4_MABX_P.DiscreteTimeIntegrator_LowerSat;
12183 }
12184 }
12185
12186 L4_MABX_B.DiscreteTimeIntegrator_h =
12187 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e;
12188
12189 /* End of DiscreteIntegrator: '<S80>/Discrete-Time Integrator' */
12190
12191 /* RelationalOperator: '<S281>/Lower Test' incorporates:
12192 * Constant: '<S281>/Lower Limit'
12193 */
12194 L4_MABX_B.LowerTest = (L4_MABX_P.IntervalTest_lowlimit <= L4_MABX_B.Divide_nn);
12195
12196 /* RelationalOperator: '<S281>/Upper Test' incorporates:
12197 * Constant: '<S281>/Upper Limit'
12198 */
12199 L4_MABX_B.UpperTest = (L4_MABX_B.Divide_nn <= L4_MABX_P.IntervalTest_uplimit);
12200
12201 /* Logic: '<S281>/AND' */
12202 L4_MABX_B.AND_p = (L4_MABX_B.LowerTest && L4_MABX_B.UpperTest);
12203
12204 /* Assertion: '<S278>/Assertion' */
12205 utAssert(L4_MABX_B.AND_p);
12206
12207 /* RelationalOperator: '<S286>/Lower Test' incorporates:
12208 * Constant: '<S286>/Lower Limit'
12209 */
12210 L4_MABX_B.LowerTest_l = (L4_MABX_P.IntervalTest_lowlimit_k <=
12211 L4_MABX_B.Divide_d0);
12212
12213 /* RelationalOperator: '<S286>/Upper Test' incorporates:
12214 * Constant: '<S286>/Upper Limit'
12215 */
12216 L4_MABX_B.UpperTest_e = (L4_MABX_B.Divide_d0 <=
12217 L4_MABX_P.IntervalTest_uplimit_e);
12218
12219 /* Logic: '<S286>/AND' */
12220 L4_MABX_B.AND_j = (L4_MABX_B.LowerTest_l && L4_MABX_B.UpperTest_e);
12221
12222 /* Assertion: '<S283>/Assertion' */
12223 utAssert(L4_MABX_B.AND_j);
12224
12225 /* Switch: '<S289>/Switch' incorporates:
12226 * Constant: '<S273>/Constant8'
12227 * Constant: '<S273>/Constant9'
12228 */
12229 if (L4_MABX_P.Constant8_Value_l) {
12230 L4_MABX_B.Switch_k = L4_MABX_P.Constant9_Value;
12231 } else {
12232 L4_MABX_B.Switch_k = L4_MABX_B.Add_px;
12233 }
12234
12235 /* End of Switch: '<S289>/Switch' */
12236
12237 /* RelationalOperator: '<S80>/Relational Operator' incorporates:
12238 * Constant: '<S80>/Constant1'
12239 */
12240 L4_MABX_B.RelationalOperator_oq = (L4_MABX_B.DataTypeConversion5_e3 >=
12241 L4_MABX_P.Constant1_Value_ls);
12242
12243 /* Gain: '<S292>/Gain' */
12244 L4_MABX_B.Gain_o = L4_MABX_P.Gain_Gain_p * L4_MABX_B.DiscreteTimeIntegrator;
12245
12246 /* MATLAB Function: '<S274>/Error Calc' */
12247 /* MATLAB Function 'STEERCTRL_10ms/SteerController/Error Calc': '<S294>:1' */
12248 /* '<S294>:1:3' */
12249 L4_MABX_B.error = TargetAzimuth_rad - CurrentAzimuth_rad;
12250 if (L4_MABX_B.error < -3.1415926535897931) {
12251 /* '<S294>:1:5' */
12252 /* '<S294>:1:6' */
12253 L4_MABX_B.error += 6.2831853071795862;
12254 } else {
12255 if (L4_MABX_B.error > 3.1415926535897931) {
12256 /* '<S294>:1:7' */
12257 /* '<S294>:1:8' */
12258 L4_MABX_B.error -= 6.2831853071795862;
12259 }
12260 }
12261
12262 /* End of MATLAB Function: '<S274>/Error Calc' */
12263
12264 /* Gain: '<S274>/FeedforwardGain' */
12265 L4_MABX_B.FeedforwardGain = Curvature_FF_Gain *
12266 L4_MABX_B.If_Then_Else_p.Switch;
12267
12268 /* Gain: '<S298>/Integral Gain' */
12269 L4_MABX_B.IntegralGain = Lateral_Control_I * L4_MABX_B.If_Then_Else1_m.Switch;
12270
12271 /* Sum: '<S299>/Subtract' */
12272 L4_MABX_B.Subtract_o = Lateral_Control_Output - L4_MABX_B.DifferenceInputs2;
12273
12274 /* Abs: '<S299>/Abs2' */
12275 L4_MABX_B.Abs2_k = fabs(L4_MABX_B.Subtract_o);
12276
12277 /* RelationalOperator: '<S306>/Compare' incorporates:
12278 * Constant: '<S306>/Constant'
12279 */
12280 RateLimiterActive = (L4_MABX_B.Abs2_k > L4_MABX_P.CompareToConstant_const_g);
12281
12282 /* RelationalOperator: '<S301>/Relational Operator1' incorporates:
12283 * Constant: '<S274>/Constant2'
12284 */
12285 L4_MABX_B.RelationalOperator1_fu = (YawRate >= Lateral_Control_YawRate_Limit);
12286
12287 /* RelationalOperator: '<S301>/Relational Operator' incorporates:
12288 * Constant: '<S274>/Constant4'
12289 */
12290 PositionFinalLimited = -Lateral_Control_YawRate_Limit;
12291 L4_MABX_B.RelationalOperator_l4 = (YawRate <= PositionFinalLimited);
12292
12293 /* Outputs for Atomic SubSystem: '<S301>/If_Then_Else1' */
12294 /* Constant: '<S274>/Constant4' */
12295 PositionFinalLimited = -Lateral_Control_YawRate_Limit;
12296 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_l4, PositionFinalLimited,
12297 YawRate, &L4_MABX_B.If_Then_Else1_o);
12298
12299 /* End of Outputs for SubSystem: '<S301>/If_Then_Else1' */
12300
12301 /* Outputs for Atomic SubSystem: '<S301>/If_Then_Else' */
12302
12303 /* Constant: '<S274>/Constant2' */
12304 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_fu,
12305 Lateral_Control_YawRate_Limit,
12306 L4_MABX_B.If_Then_Else1_o.Switch,
12307 &L4_MABX_B.If_Then_Else_m0);
12308
12309 /* End of Outputs for SubSystem: '<S301>/If_Then_Else' */
12310
12311 /* Gain: '<S274>/RateFeedbackGain' */
12312 L4_MABX_B.RateFeedbackGain = Yaw_Rate_FF_Gain *
12313 L4_MABX_B.If_Then_Else_m0.Switch;
12314
12315 /* Gain: '<S274>/UndersteerCorrection' */
12316 L4_MABX_B.UndersteerCorrection = UndersteerCorection *
12317 L4_MABX_B.FeedforwardGain;
12318
12319 /* Sum: '<S274>/Sum2' */
12320 L4_MABX_B.Sum2 = L4_MABX_B.UndersteerCorrection - L4_MABX_B.RateFeedbackGain;
12321
12322 /* UnitDelay: '<S80>/Unit Delay' */
12323 L4_MABX_B.UnitDelay_p = L4_MABX_DW.UnitDelay_DSTATE_e;
12324
12325 /* Switch: '<S80>/Switch1' incorporates:
12326 * Constant: '<S80>/Constant2'
12327 * Switch: '<S80>/Switch2'
12328 */
12329 if (L4_MABX_B.RelationalOperator_oq) {
12330 /* Product: '<S80>/Product3' incorporates:
12331 * Constant: '<S80>/SteeringControlNewIGain1'
12332 */
12333 L4_MABX_B.Product3 = L4_MABX_B.mm2m *
12334 L4_MABX_P.SteeringControlNewIGain1_Value;
12335 L4_MABX_B.Switch1_p = L4_MABX_B.Product3;
12336
12337 /* Gain: '<S80>/deg2rad' */
12338 L4_MABX_B.deg2rad_d = L4_MABX_P.deg2rad_Gain * L4_MABX_B.SFunction1_o1_g3;
12339
12340 /* Product: '<S80>/Product2' incorporates:
12341 * Constant: '<S80>/SteeringControlNewPGain1'
12342 */
12343 L4_MABX_B.Product2_my = L4_MABX_B.deg2rad_d *
12344 L4_MABX_P.SteeringControlNewPGain1_Value;
12345 L4_MABX_B.Switch2_i1 = L4_MABX_B.Product2_my;
12346 } else {
12347 L4_MABX_B.Switch1_p = L4_MABX_P.Constant2_Value_n;
12348 L4_MABX_B.Switch2_i1 = L4_MABX_B.UnitDelay_p;
12349 }
12350
12351 /* End of Switch: '<S80>/Switch1' */
12352
12353 /* Gain: '<S80>/sign2' */
12354 DesiredSteeringAngle = L4_MABX_P.sign2_Gain * L4_MABX_B.uD_Lookup_Table_a;
12355
12356 /* RelationalOperator: '<S340>/min_relop' incorporates:
12357 * Constant: '<S340>/min_val'
12358 */
12359 L4_MABX_B.min_relop_k0 = (L4_MABX_P.CheckStaticLowerBound_min_o <=
12360 L4_MABX_B.Divide_e);
12361
12362 /* Assertion: '<S340>/Assertion' */
12363 utAssert(L4_MABX_B.min_relop_k0);
12364
12365 /* Logic: '<S349>/Logical Operator2' */
12366 L4_MABX_B.LogicalOperator2_g = !L4_MABX_B.LogicalOperator1_p;
12367
12368 /* Switch: '<S358>/Reset' incorporates:
12369 * Constant: '<S353>/CPV'
12370 */
12371 if (L4_MABX_B.LogicalOperator1_ja) {
12372 L4_MABX_B.Xnew = L4_MABX_P.CPV_Value_h;
12373 } else {
12374 L4_MABX_B.Xnew = L4_MABX_B.If_Then_Else_gf.Switch;
12375 }
12376
12377 /* End of Switch: '<S358>/Reset' */
12378
12379 /* UnitDelay: '<S360>/FixPt Unit Delay2' */
12380 L4_MABX_B.FixPtUnitDelay2_ji = L4_MABX_DW.FixPtUnitDelay2_DSTATE_aw;
12381
12382 /* Logic: '<S360>/FixPt Logical Operator' */
12383 L4_MABX_B.FixPtLogicalOperator_i = (uint8_T)(L4_MABX_B.LogicalOperator1_ja ||
12384 (L4_MABX_B.FixPtUnitDelay2_ji != 0));
12385
12386 /* UnitDelay: '<S360>/FixPt Unit Delay1' */
12387 L4_MABX_B.Xold_d = L4_MABX_DW.FixPtUnitDelay1_DSTATE_p;
12388
12389 /* Switch: '<S360>/Init' incorporates:
12390 * Constant: '<S354>/CPV'
12391 */
12392 if (L4_MABX_B.FixPtLogicalOperator_i != 0) {
12393 L4_MABX_B.Init_o = L4_MABX_P.CPV_Value_n;
12394 } else {
12395 L4_MABX_B.Init_o = L4_MABX_B.Xold_d;
12396 }
12397
12398 /* End of Switch: '<S360>/Init' */
12399
12400 /* UnitDelay: '<S361>/FixPt Unit Delay2' */
12401 L4_MABX_B.FixPtUnitDelay2_m = L4_MABX_DW.FixPtUnitDelay2_DSTATE_g;
12402
12403 /* Logic: '<S361>/FixPt Logical Operator' */
12404 L4_MABX_B.FixPtLogicalOperator_b = (uint8_T)(L4_MABX_B.LogicalOperator1_ja ||
12405 (L4_MABX_B.FixPtUnitDelay2_m != 0));
12406
12407 /* UnitDelay: '<S361>/FixPt Unit Delay1' */
12408 L4_MABX_B.Xold_mg = L4_MABX_DW.FixPtUnitDelay1_DSTATE_g;
12409
12410 /* Switch: '<S361>/Init' incorporates:
12411 * Constant: '<S352>/CPV2'
12412 */
12413 if (L4_MABX_B.FixPtLogicalOperator_b != 0) {
12414 L4_MABX_B.Init_l = L4_MABX_P.CPV2_Value_p;
12415 } else {
12416 L4_MABX_B.Init_l = L4_MABX_B.Xold_mg;
12417 }
12418
12419 /* End of Switch: '<S361>/Init' */
12420
12421 /* MultiPortSwitch: '<S359>/Multiport Switch' incorporates:
12422 * Constant: '<S352>/CPV2'
12423 * Constant: '<S359>/Integrator_method'
12424 */
12425 switch ((int32_T)L4_MABX_P.Integrator_method_Value) {
12426 case 1:
12427 L4_MABX_B.MultiportSwitch_i = L4_MABX_P.CPV2_Value_p;
12428 break;
12429
12430 case 2:
12431 L4_MABX_B.MultiportSwitch_i = L4_MABX_B.Init_l;
12432 break;
12433
12434 default:
12435 /* Sum: '<S359>/Add' incorporates:
12436 * Constant: '<S352>/CPV2'
12437 */
12438 L4_MABX_B.Add_py = L4_MABX_B.Init_l + L4_MABX_P.CPV2_Value_p;
12439
12440 /* Gain: '<S359>/Gain' */
12441 L4_MABX_B.u_trapezoidal = L4_MABX_P.Gain_Gain_j * L4_MABX_B.Add_py;
12442 L4_MABX_B.MultiportSwitch_i = L4_MABX_B.u_trapezoidal;
12443 break;
12444 }
12445
12446 /* End of MultiPortSwitch: '<S359>/Multiport Switch' */
12447
12448 /* DigitalClock: '<S355>/Digital Clock' */
12449 L4_MABX_B.DigitalClock_d = L4_MABX_M->Timing.t[0];
12450
12451 /* UnitDelay: '<S355>/Unit_Delay' */
12452 L4_MABX_B.Unit_Delay_pa = L4_MABX_DW.Unit_Delay_DSTATE_j;
12453
12454 /* Sum: '<S355>/Subtract' */
12455 L4_MABX_B.Subtract_k = L4_MABX_B.DigitalClock_d - L4_MABX_B.Unit_Delay_pa;
12456
12457 /* Product: '<S354>/Product1' incorporates:
12458 * Constant: '<S352>/CPV'
12459 */
12460 L4_MABX_B.Product1_am = L4_MABX_P.CPV_Value_g * L4_MABX_B.MultiportSwitch_i *
12461 L4_MABX_B.Subtract_k;
12462
12463 /* Sum: '<S354>/Add' */
12464 L4_MABX_B.Add_db = L4_MABX_B.Init_o + L4_MABX_B.Product1_am;
12465
12466 /* Switch: '<S361>/Reset' incorporates:
12467 * Constant: '<S352>/CPV2'
12468 */
12469 L4_MABX_B.Xnew_f = L4_MABX_P.CPV2_Value_p;
12470
12471 /* Switch: '<S360>/Reset' incorporates:
12472 * Constant: '<S354>/CPV'
12473 */
12474 if (L4_MABX_B.LogicalOperator1_ja) {
12475 L4_MABX_B.Xnew_h = L4_MABX_P.CPV_Value_n;
12476 } else {
12477 L4_MABX_B.Xnew_h = L4_MABX_B.Add_db;
12478 }
12479
12480 /* End of Switch: '<S360>/Reset' */
12481
12482 /* RelationalOperator: '<S368>/min_relop' incorporates:
12483 * Constant: '<S332>/FCW_CTRL_SLEW_INC_APV'
12484 * Constant: '<S368>/min_val'
12485 */
12486 L4_MABX_B.min_relop_cb = (L4_MABX_P.CheckStaticLowerBound_min_h <=
12487 L4_MABX_P.FCW_CTRL_SLEW_INC_APV_Value);
12488
12489 /* Assertion: '<S368>/Assertion' */
12490 utAssert(L4_MABX_B.min_relop_cb);
12491
12492 /* RelationalOperator: '<S379>/min_relop' incorporates:
12493 * Constant: '<S334>/STABILITY_CTRL_SLEW_INC_APV'
12494 * Constant: '<S379>/min_val'
12495 */
12496 L4_MABX_B.min_relop_f = (L4_MABX_P.CheckStaticLowerBound_min_nz <=
12497 L4_MABX_P.STABILITY_CTRL_SLEW_INC_APV_Val);
12498
12499 /* Assertion: '<S379>/Assertion' */
12500 utAssert(L4_MABX_B.min_relop_f);
12501
12502 /* End of Outputs for SubSystem: '<S65>/Task_10ms' */
12503
12504 /* Outputs for Enabled SubSystem: '<S611>/PosRapidUpdate_011' incorporates:
12505 * EnablePort: '<S612>/Enable'
12506 */
12507 /* Constant: '<S434>/Constant' */
12508 if (L4_MABX_P.Constant_Value_bz > 0.0) {
12509 /* S-Function (rti_commonblock): '<S612>/S-Function1' */
12510 /* This comment workarounds a code generation problem */
12511
12512 /* dSPACE RTICAN RX Message Block: "PosRapidUpdate_01" Id:167248128 */
12513 {
12514 UInt32 *CAN_Msg;
12515 static dsfloat time_old = 0.0;
12516
12517 /* Read status and timestamp info (previous message) */
12518 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80100].timestamp !=
12519 time_old) {
12520 /* ... save timestamp info for the calculation of the RX status
12521 during the consecutive sample hit*/
12522 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80100].
12523 timestamp;
12524
12525 /* ... set the processed flag to one */
12526 L4_MABX_B.SFunction1_o3_bk = 1.0;
12527 L4_MABX_B.SFunction1_o4_mu = (real_T)
12528 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80100].timestamp;
12529 L4_MABX_B.SFunction1_o5_e = (real_T)
12530 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80100].deltatime;
12531 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80100].data;
12532
12533 /* Decode CAN message */
12534 {
12535 {
12536 rtican_Signal_t CAN_Sgn;
12537
12538 /* ...... "Latitude_" (0|32, standard signal, signed int, little endian) */
12539 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
12540 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
12541 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[2];
12542 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[3];
12543 L4_MABX_B.SFunction1_o1_dl = 1.0E-7 * ( ((real_T) CAN_Sgn.SignedSgn)
12544 );
12545
12546 /* ...... "Longitude_" (32|32, standard signal, signed int, little endian) */
12547 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
12548 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
12549 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[6];
12550 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[7];
12551 L4_MABX_B.SFunction1_o2_ggw = 1.0E-7 * ( ((real_T) CAN_Sgn.SignedSgn)
12552 );
12553 }
12554 }
12555 } else {
12556 /* set RX status to 0 because no new message has arrived */
12557 L4_MABX_B.SFunction1_o3_bk = 0.0;
12558 }
12559 }
12560 }
12561
12562 /* End of Outputs for SubSystem: '<S611>/PosRapidUpdate_011' */
12563
12564 /* Outputs for Atomic SubSystem: '<S452>/If_Then_Else' */
12565
12566 /* Constant: '<S452>/useGPSSA00' incorporates:
12567 * Constant: '<S452>/useGPSSA0'
12568 */
12569 L4_MABX_If_Then_Else3(L4_MABX_B.LogicalOperator1_j, L4_MABX_P.useGPSSA00_Value,
12570 L4_MABX_P.useGPSSA0_Value, &L4_MABX_B.If_Then_Else);
12571
12572 /* End of Outputs for SubSystem: '<S452>/If_Then_Else' */
12573
12574 /* Outputs for Enabled SubSystem: '<S611>/PosRapidUpdate_1' incorporates:
12575 * EnablePort: '<S613>/Enable'
12576 */
12577 /* Constant: '<S434>/Constant' */
12578 if (L4_MABX_P.Constant_Value_bz > 0.0) {
12579 /* S-Function (rti_commonblock): '<S613>/S-Function1' */
12580 /* This comment workarounds a code generation problem */
12581
12582 /* dSPACE RTICAN RX Message Block: "PosRapidUpdate_01" Id:167248129 */
12583 {
12584 UInt32 *CAN_Msg;
12585 static dsfloat time_old = 0.0;
12586
12587 /* Read status and timestamp info (previous message) */
12588 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80101].timestamp !=
12589 time_old) {
12590 /* ... save timestamp info for the calculation of the RX status
12591 during the consecutive sample hit*/
12592 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80101].
12593 timestamp;
12594
12595 /* ... set the processed flag to one */
12596 L4_MABX_B.SFunction1_o3_ew = 1.0;
12597 L4_MABX_B.SFunction1_o4_cn = (real_T)
12598 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80101].timestamp;
12599 L4_MABX_B.SFunction1_o5_k = (real_T)
12600 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80101].deltatime;
12601 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80101].data;
12602
12603 /* Decode CAN message */
12604 {
12605 {
12606 rtican_Signal_t CAN_Sgn;
12607
12608 /* ...... "Latitude_" (0|32, standard signal, signed int, little endian) */
12609 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
12610 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
12611 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[2];
12612 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[3];
12613 L4_MABX_B.SFunction1_o1_e = 1.0E-7 * ( ((real_T) CAN_Sgn.SignedSgn) );
12614
12615 /* ...... "Longitude_" (32|32, standard signal, signed int, little endian) */
12616 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
12617 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
12618 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[6];
12619 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[7];
12620 L4_MABX_B.SFunction1_o2_ie = 1.0E-7 * ( ((real_T) CAN_Sgn.SignedSgn)
12621 );
12622 }
12623 }
12624 } else {
12625 /* set RX status to 0 because no new message has arrived */
12626 L4_MABX_B.SFunction1_o3_ew = 0.0;
12627 }
12628 }
12629 }
12630
12631 /* End of Outputs for SubSystem: '<S611>/PosRapidUpdate_1' */
12632
12633 /* Switch: '<S611>/Switch' */
12634 if (L4_MABX_B.If_Then_Else.Switch) {
12635 L4_MABX_B.Latitude_ = L4_MABX_B.SFunction1_o1_dl;
12636 L4_MABX_B.Longitude_ = L4_MABX_B.SFunction1_o2_ggw;
12637 } else {
12638 L4_MABX_B.Latitude_ = L4_MABX_B.SFunction1_o1_e;
12639 L4_MABX_B.Longitude_ = L4_MABX_B.SFunction1_o2_ie;
12640 }
12641
12642 /* Outputs for Enabled SubSystem: '<S491>/CCVS1_00' incorporates:
12643 * EnablePort: '<S492>/Enable'
12644 */
12645 /* Constant: '<S415>/Constant' */
12646 if (L4_MABX_P.Constant_Value_hjz) {
12647 /* S-Function (rti_commonblock): '<S492>/S-Function1' */
12648 /* This comment workarounds a code generation problem */
12649
12650 /* dSPACE RTICAN RX Message Block: "CCVS1_00" Id:218034432 */
12651 {
12652 UInt32 *CAN_Msg;
12653 static dsfloat time_old = 0.0;
12654
12655 /* Read status and timestamp info (previous message) */
12656 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCFEF100].timestamp !=
12657 time_old) {
12658 /* ... save timestamp info for the calculation of the RX status
12659 during the consecutive sample hit*/
12660 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCFEF100].
12661 timestamp;
12662
12663 /* ... set the processed flag to one */
12664 L4_MABX_B.SFunction1_o21_j = 1.0;
12665 L4_MABX_B.SFunction1_o22_d = (real_T)
12666 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCFEF100].timestamp;
12667 L4_MABX_B.SFunction1_o23_dl = (real_T)
12668 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCFEF100].deltatime;
12669 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCFEF100].data;
12670
12671 /* Decode CAN message */
12672 {
12673 {
12674 rtican_Signal_t CAN_Sgn;
12675
12676 /* ...... "TwoSpeedAxleSwitch" (0|2, standard signal, unsigned int, little endian) */
12677 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
12678 CAN_Sgn.UnsignedSgn &= 0x00000003;
12679 L4_MABX_B.SFunction1_o1_lf = ((real_T) CAN_Sgn.UnsignedSgn);
12680
12681 /* ...... "ParkingBrakeSwitch" (2|2, standard signal, unsigned int, little endian) */
12682 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
12683 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
12684 CAN_Sgn.UnsignedSgn &= 0x00000003;
12685 L4_MABX_B.SFunction1_o2_no = ((real_T) CAN_Sgn.UnsignedSgn);
12686
12687 /* ...... "CruiseCtrlPauseSwitch" (4|2, standard signal, unsigned int, little endian) */
12688 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
12689 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
12690 CAN_Sgn.UnsignedSgn &= 0x00000003;
12691 L4_MABX_B.SFunction1_o3_m1 = ((real_T) CAN_Sgn.UnsignedSgn);
12692
12693 /* ...... "ParkBrakeReleaseInhibitRq" (6|2, standard signal, unsigned int, little endian) */
12694 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
12695 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
12696 CAN_Sgn.UnsignedSgn &= 0x00000003;
12697 L4_MABX_B.SFunction1_o4_gw = ((real_T) CAN_Sgn.UnsignedSgn);
12698
12699 /* ...... "WheelBasedVehicleSpeed" (8|16, standard signal, unsigned int, little endian) */
12700 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
12701 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
12702 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
12703 WheelBasedVehicleSpeed = 0.00390625 * ( ((real_T)
12704 CAN_Sgn.UnsignedSgn) );
12705
12706 /* ...... "CruiseCtrlActive" (24|2, standard signal, unsigned int, little endian) */
12707 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
12708 CAN_Sgn.UnsignedSgn &= 0x00000003;
12709 L4_MABX_B.SFunction1_o6_jk = ((real_T) CAN_Sgn.UnsignedSgn);
12710
12711 /* ...... "CruiseCtrlEnableSwitch" (26|2, standard signal, unsigned int, little endian) */
12712 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
12713 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
12714 CAN_Sgn.UnsignedSgn &= 0x00000003;
12715 L4_MABX_B.SFunction1_o7_l1 = ((real_T) CAN_Sgn.UnsignedSgn);
12716
12717 /* ...... "BrakeSwitch" (28|2, standard signal, unsigned int, little endian) */
12718 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
12719 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
12720 CAN_Sgn.UnsignedSgn &= 0x00000003;
12721 BrakeSwitch = ((real_T) CAN_Sgn.UnsignedSgn);
12722
12723 /* ...... "ClutchSwitch" (30|2, standard signal, unsigned int, little endian) */
12724 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
12725 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
12726 CAN_Sgn.UnsignedSgn &= 0x00000003;
12727 L4_MABX_B.SFunction1_o9_hq = ((real_T) CAN_Sgn.UnsignedSgn);
12728
12729 /* ...... "CruiseCtrlSetSwitch" (32|2, standard signal, unsigned int, little endian) */
12730 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
12731 CAN_Sgn.UnsignedSgn &= 0x00000003;
12732 L4_MABX_B.SFunction1_o10_h = ((real_T) CAN_Sgn.UnsignedSgn);
12733
12734 /* ...... "CruiseCtrlCoastSwitch" (34|2, standard signal, unsigned int, little endian) */
12735 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
12736 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
12737 CAN_Sgn.UnsignedSgn &= 0x00000003;
12738 L4_MABX_B.SFunction1_o11_gb = ((real_T) CAN_Sgn.UnsignedSgn);
12739
12740 /* ...... "CruiseCtrlResumeSwitch" (36|2, standard signal, unsigned int, little endian) */
12741 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
12742 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
12743 CAN_Sgn.UnsignedSgn &= 0x00000003;
12744 L4_MABX_B.SFunction1_o12_j = ((real_T) CAN_Sgn.UnsignedSgn);
12745
12746 /* ...... "CruiseCtrlAccelerateSwitch" (38|2, standard signal, unsigned int, little endian) */
12747 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
12748 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
12749 CAN_Sgn.UnsignedSgn &= 0x00000003;
12750 L4_MABX_B.SFunction1_o13_hl = ((real_T) CAN_Sgn.UnsignedSgn);
12751
12752 /* ...... "CruiseCtrlSetSpeed" (40|8, standard signal, unsigned int, little endian) */
12753 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
12754 CAN_Sgn.UnsignedSgn &= 0x000000FF;
12755 L4_MABX_B.SFunction1_o14_he = ((real_T) CAN_Sgn.UnsignedSgn);
12756
12757 /* ...... "PTOGovernorState" (48|5, standard signal, unsigned int, little endian) */
12758 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
12759 CAN_Sgn.UnsignedSgn &= 0x0000001F;
12760 L4_MABX_B.SFunction1_o15_d = ((real_T) CAN_Sgn.UnsignedSgn);
12761
12762 /* ...... "CruiseCtrlStates" (53|3, standard signal, unsigned int, little endian) */
12763 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
12764 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 5;
12765 CAN_Sgn.UnsignedSgn &= 0x00000007;
12766 L4_MABX_B.SFunction1_o16_e = ((real_T) CAN_Sgn.UnsignedSgn);
12767
12768 /* ...... "EngIdleIncrementSwitch" (56|2, standard signal, unsigned int, little endian) */
12769 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
12770 CAN_Sgn.UnsignedSgn &= 0x00000003;
12771 L4_MABX_B.SFunction1_o17_o = ((real_T) CAN_Sgn.UnsignedSgn);
12772
12773 /* ...... "EngIdleDecrementSwitch" (58|2, standard signal, unsigned int, little endian) */
12774 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
12775 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
12776 CAN_Sgn.UnsignedSgn &= 0x00000003;
12777 L4_MABX_B.SFunction1_o18_d = ((real_T) CAN_Sgn.UnsignedSgn);
12778
12779 /* ...... "EngTestModeSwitch" (60|2, standard signal, unsigned int, little endian) */
12780 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
12781 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
12782 CAN_Sgn.UnsignedSgn &= 0x00000003;
12783 L4_MABX_B.SFunction1_o19_e = ((real_T) CAN_Sgn.UnsignedSgn);
12784
12785 /* ...... "EngShutdownOverrideSwitch" (62|2, standard signal, unsigned int, little endian) */
12786 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
12787 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
12788 CAN_Sgn.UnsignedSgn &= 0x00000003;
12789 L4_MABX_B.SFunction1_o20_p = ((real_T) CAN_Sgn.UnsignedSgn);
12790 }
12791 }
12792 } else {
12793 /* set RX status to 0 because no new message has arrived */
12794 L4_MABX_B.SFunction1_o21_j = 0.0;
12795 }
12796 }
12797 }
12798
12799 /* End of Constant: '<S415>/Constant' */
12800 /* End of Outputs for SubSystem: '<S491>/CCVS1_00' */
12801
12802 /* Outputs for Enabled SubSystem: '<S495>/COGSOGRapidUpdate_00' incorporates:
12803 * EnablePort: '<S496>/Enable'
12804 */
12805 /* Constant: '<S417>/Constant' */
12806 if (L4_MABX_P.Constant_Value_gd > 0.0) {
12807 /* S-Function (rti_commonblock): '<S496>/S-Function1' */
12808 /* This comment workarounds a code generation problem */
12809
12810 /* dSPACE RTICAN RX Message Block: "COGSOGRapidUpdate_00" Id:167248384 */
12811 {
12812 UInt32 *CAN_Msg;
12813 static dsfloat time_old = 0.0;
12814
12815 /* Read status and timestamp info (previous message) */
12816 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80200].timestamp !=
12817 time_old) {
12818 /* ... save timestamp info for the calculation of the RX status
12819 during the consecutive sample hit*/
12820 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80200].
12821 timestamp;
12822
12823 /* ... set the processed flag to one */
12824 L4_MABX_B.SFunction1_o5_f2 = 1.0;
12825 L4_MABX_B.SFunction1_o6_c5 = (real_T)
12826 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80200].timestamp;
12827 L4_MABX_B.SFunction1_o7_ny = (real_T)
12828 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80200].deltatime;
12829 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80200].data;
12830
12831 /* Decode CAN message */
12832 {
12833 {
12834 rtican_Signal_t CAN_Sgn;
12835
12836 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
12837 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
12838 CAN_Sgn.UnsignedSgn &= 0x000000FF;
12839 L4_MABX_B.SFunction1_o1_ln = ((real_T) CAN_Sgn.UnsignedSgn);
12840
12841 /* ...... "COGReference" (8|2, standard signal, unsigned int, little endian) */
12842 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
12843 CAN_Sgn.UnsignedSgn &= 0x00000003;
12844 L4_MABX_B.SFunction1_o2_p4 = ((real_T) CAN_Sgn.UnsignedSgn);
12845
12846 /* ...... "CourseOverGround" (16|16, standard signal, unsigned int, little endian) */
12847 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
12848 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
12849 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
12850 L4_MABX_B.SFunction1_o3_lv = 0.0001 * ( ((real_T)
12851 CAN_Sgn.UnsignedSgn) );
12852
12853 /* ...... "SpeedOverGround" (32|16, standard signal, unsigned int, little endian) */
12854 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
12855 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
12856 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
12857 L4_MABX_B.SFunction1_o4_nh = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
12858 );
12859 }
12860 }
12861 } else {
12862 /* set RX status to 0 because no new message has arrived */
12863 L4_MABX_B.SFunction1_o5_f2 = 0.0;
12864 }
12865 }
12866 }
12867
12868 /* End of Outputs for SubSystem: '<S495>/COGSOGRapidUpdate_00' */
12869
12870 /* DataTypeConversion: '<S495>/Data Type Conversion8' */
12871 L4_MABX_B.RX_status_d = (L4_MABX_B.SFunction1_o5_f2 != 0.0);
12872
12873 /* Outputs for Enabled SubSystem: '<S495>/COGSOGRapidUpdate_1' incorporates:
12874 * EnablePort: '<S497>/Enable'
12875 */
12876 /* Constant: '<S417>/Constant' */
12877 if (L4_MABX_P.Constant_Value_gd > 0.0) {
12878 /* S-Function (rti_commonblock): '<S497>/S-Function1' */
12879 /* This comment workarounds a code generation problem */
12880
12881 /* dSPACE RTICAN RX Message Block: "COGSOGRapidUpdate_00" Id:167248385 */
12882 {
12883 UInt32 *CAN_Msg;
12884 static dsfloat time_old = 0.0;
12885
12886 /* Read status and timestamp info (previous message) */
12887 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80201].timestamp !=
12888 time_old) {
12889 /* ... save timestamp info for the calculation of the RX status
12890 during the consecutive sample hit*/
12891 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80201].
12892 timestamp;
12893
12894 /* ... set the processed flag to one */
12895 L4_MABX_B.SFunction1_o5_df = 1.0;
12896 L4_MABX_B.SFunction1_o6_gql = (real_T)
12897 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80201].timestamp;
12898 L4_MABX_B.SFunction1_o7_c4 = (real_T)
12899 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80201].deltatime;
12900 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80201].data;
12901
12902 /* Decode CAN message */
12903 {
12904 {
12905 rtican_Signal_t CAN_Sgn;
12906
12907 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
12908 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
12909 CAN_Sgn.UnsignedSgn &= 0x000000FF;
12910 L4_MABX_B.SFunction1_o1_md = ((real_T) CAN_Sgn.UnsignedSgn);
12911
12912 /* ...... "COGReference" (8|2, standard signal, unsigned int, little endian) */
12913 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
12914 CAN_Sgn.UnsignedSgn &= 0x00000003;
12915 L4_MABX_B.SFunction1_o2_lt = ((real_T) CAN_Sgn.UnsignedSgn);
12916
12917 /* ...... "CourseOverGround" (16|16, standard signal, unsigned int, little endian) */
12918 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
12919 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
12920 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
12921 L4_MABX_B.SFunction1_o3_ae = 0.0001 * ( ((real_T)
12922 CAN_Sgn.UnsignedSgn) );
12923
12924 /* ...... "SpeedOverGround" (32|16, standard signal, unsigned int, little endian) */
12925 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
12926 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
12927 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
12928 L4_MABX_B.SFunction1_o4_gk = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
12929 );
12930 }
12931 }
12932 } else {
12933 /* set RX status to 0 because no new message has arrived */
12934 L4_MABX_B.SFunction1_o5_df = 0.0;
12935 }
12936 }
12937 }
12938
12939 /* End of Outputs for SubSystem: '<S495>/COGSOGRapidUpdate_1' */
12940
12941 /* Switch: '<S495>/Switch' */
12942 if (L4_MABX_B.RX_status_d) {
12943 L4_MABX_B.SID = L4_MABX_B.SFunction1_o1_ln;
12944 L4_MABX_B.COGReference = L4_MABX_B.SFunction1_o2_p4;
12945 L4_MABX_B.CourseOverGround = L4_MABX_B.SFunction1_o3_lv;
12946 L4_MABX_B.SpeedOverGround = L4_MABX_B.SFunction1_o4_nh;
12947 } else {
12948 L4_MABX_B.SID = L4_MABX_B.SFunction1_o1_md;
12949 L4_MABX_B.COGReference = L4_MABX_B.SFunction1_o2_lt;
12950 L4_MABX_B.CourseOverGround = L4_MABX_B.SFunction1_o3_ae;
12951 L4_MABX_B.SpeedOverGround = L4_MABX_B.SFunction1_o4_gk;
12952 }
12953
12954 /* Outputs for Atomic SubSystem: '<S815>/CAN_TX_100ms' */
12955
12956 /* RateTransition: '<S852>/TmpRTBAtHiddenBuf_InsertedFor_Rolling_15_counter_at_inport_0Inport1' */
12957 if (L4_MABX_M->Timing.RateInteraction.TID0_3 == 1) {
12958 L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_R = AutonomousOutputEnabled;
12959
12960 /* RateTransition: '<S870>/TmpRTBAtOperatorInport1' */
12961 L4_MABX_B.TmpRTBAtOperatorInport1 = AutonomousOutputEnabled;
12962
12963 /* RateTransition: '<S873>/TmpRTBAtOperatorInport1' */
12964 L4_MABX_B.TmpRTBAtOperatorInport1_i = AutonomousOutputEnabled;
12965
12966 /* RateTransition: '<S864>/TmpRTBAtOperatorInport1' */
12967 L4_MABX_B.TmpRTBAtOperatorInport1_j = AutonomousOutputEnabled;
12968
12969 /* RateTransition: '<S865>/TmpRTBAtOperatorInport1' */
12970 L4_MABX_B.TmpRTBAtOperatorInport1_a = AutonomousOutputEnabled;
12971
12972 /* RateTransition: '<S871>/TmpRTBAtOperatorInport1' */
12973 L4_MABX_B.TmpRTBAtOperatorInport1_b = AutonomousOutputEnabled;
12974
12975 /* RateTransition: '<S872>/TmpRTBAtOperatorInport1' */
12976 L4_MABX_B.TmpRTBAtOperatorInport1_o = AutonomousOutputEnabled;
12977 L4_MABX_B.Latitude__b = L4_MABX_B.Latitude_;
12978 L4_MABX_B.Longitude__h = L4_MABX_B.Longitude_;
12979 L4_MABX_B.TwoSpeedAxleSwitch_h = L4_MABX_B.SFunction1_o1_lf;
12980 L4_MABX_B.ParkingBrakeSwitch_g = L4_MABX_B.SFunction1_o2_no;
12981 L4_MABX_B.CruiseCtrlPauseSwitch_n = L4_MABX_B.SFunction1_o3_m1;
12982 L4_MABX_B.ParkBrakeReleaseInhibitRq_n = L4_MABX_B.SFunction1_o4_gw;
12983 L4_MABX_B.WheelBasedVehicleSpeed_n5 = WheelBasedVehicleSpeed;
12984 L4_MABX_B.CruiseCtrlActive_i = L4_MABX_B.SFunction1_o6_jk;
12985 L4_MABX_B.CruiseCtrlEnableSwitch_c1 = L4_MABX_B.SFunction1_o7_l1;
12986 L4_MABX_B.BrakeSwitch_m0 = BrakeSwitch;
12987 L4_MABX_B.ClutchSwitch_e = L4_MABX_B.SFunction1_o9_hq;
12988 L4_MABX_B.CruiseCtrlSetSwitch_o = L4_MABX_B.SFunction1_o10_h;
12989 L4_MABX_B.CruiseCtrlCoastSwitch_m = L4_MABX_B.SFunction1_o11_gb;
12990 L4_MABX_B.CruiseCtrlResumeSwitch_i = L4_MABX_B.SFunction1_o12_j;
12991 L4_MABX_B.CruiseCtrlAccelerateSwitch_i = L4_MABX_B.SFunction1_o13_hl;
12992 L4_MABX_B.CruiseCtrlSetSpeed_k = L4_MABX_B.SFunction1_o14_he;
12993 L4_MABX_B.PTOGovernorState_f = L4_MABX_B.SFunction1_o15_d;
12994 L4_MABX_B.CruiseCtrlStates_o = L4_MABX_B.SFunction1_o16_e;
12995 L4_MABX_B.EngIdleIncrementSwitch_b = L4_MABX_B.SFunction1_o17_o;
12996 L4_MABX_B.EngIdleDecrementSwitch_b = L4_MABX_B.SFunction1_o18_d;
12997 L4_MABX_B.EngTestModeSwitch_a = L4_MABX_B.SFunction1_o19_e;
12998 L4_MABX_B.EngShutdownOverrideSwitch_m = L4_MABX_B.SFunction1_o20_p;
12999 L4_MABX_B.TwoSpeedAxleSwitch_h5 = L4_MABX_B.SFunction1_o1_lf;
13000 L4_MABX_B.ParkingBrakeSwitch_gy = L4_MABX_B.SFunction1_o2_no;
13001 L4_MABX_B.CruiseCtrlPauseSwitch_nf = L4_MABX_B.SFunction1_o3_m1;
13002 L4_MABX_B.ParkBrakeReleaseInhibitRq_nf = L4_MABX_B.SFunction1_o4_gw;
13003 L4_MABX_B.WheelBasedVehicleSpeed_n5s = WheelBasedVehicleSpeed;
13004 L4_MABX_B.CruiseCtrlActive_i5 = L4_MABX_B.SFunction1_o6_jk;
13005 L4_MABX_B.CruiseCtrlEnableSwitch_c1b = L4_MABX_B.SFunction1_o7_l1;
13006 L4_MABX_B.BrakeSwitch_m02 = BrakeSwitch;
13007 L4_MABX_B.ClutchSwitch_e1 = L4_MABX_B.SFunction1_o9_hq;
13008 L4_MABX_B.CruiseCtrlSetSwitch_o4 = L4_MABX_B.SFunction1_o10_h;
13009 L4_MABX_B.CruiseCtrlCoastSwitch_mc = L4_MABX_B.SFunction1_o11_gb;
13010 L4_MABX_B.CruiseCtrlResumeSwitch_ir = L4_MABX_B.SFunction1_o12_j;
13011 L4_MABX_B.CruiseCtrlAccelerateSwitch_if = L4_MABX_B.SFunction1_o13_hl;
13012 L4_MABX_B.CruiseCtrlSetSpeed_ku = L4_MABX_B.SFunction1_o14_he;
13013 L4_MABX_B.PTOGovernorState_fm = L4_MABX_B.SFunction1_o15_d;
13014 L4_MABX_B.CruiseCtrlStates_og = L4_MABX_B.SFunction1_o16_e;
13015 L4_MABX_B.EngIdleIncrementSwitch_bd = L4_MABX_B.SFunction1_o17_o;
13016 L4_MABX_B.EngIdleDecrementSwitch_b1 = L4_MABX_B.SFunction1_o18_d;
13017 L4_MABX_B.EngTestModeSwitch_au = L4_MABX_B.SFunction1_o19_e;
13018 L4_MABX_B.EngShutdownOverrideSwitch_mv = L4_MABX_B.SFunction1_o20_p;
13019 L4_MABX_B.SID_f = L4_MABX_B.SID;
13020 L4_MABX_B.COGReference_p = L4_MABX_B.COGReference;
13021 L4_MABX_B.CourseOverGround_d = L4_MABX_B.CourseOverGround;
13022 L4_MABX_B.SpeedOverGround_c = L4_MABX_B.SpeedOverGround;
13023 L4_MABX_B.ASREngCtrlActive = L4_MABX_B.SFunction1_o1_ih;
13024 L4_MABX_B.ASRBrakeCtrlActive = L4_MABX_B.SFunction1_o2_i0;
13025 L4_MABX_B.AntiLockBrakingActive = L4_MABX_B.SFunction1_o3_ls;
13026 L4_MABX_B.EBSBrakeSwitch_a = L4_MABX_B.SFunction1_o4_nr;
13027 L4_MABX_B.BrakePedalPos = L4_MABX_B.SFunction1_o5_k4;
13028 L4_MABX_B.ABSOffroadSwitch = L4_MABX_B.SFunction1_o6_b;
13029 L4_MABX_B.ASROffroadSwitch = L4_MABX_B.SFunction1_o7_g;
13030 L4_MABX_B.ASRHillHolderSwitch = L4_MABX_B.SFunction1_o8_ih;
13031 L4_MABX_B.TractionCtrlOverrideSwitch = L4_MABX_B.SFunction1_o9_i;
13032 L4_MABX_B.AccelInterlockSwitch = L4_MABX_B.SFunction1_o10_o;
13033 L4_MABX_B.EngDerateSwitch = L4_MABX_B.SFunction1_o11_gk;
13034 L4_MABX_B.EngAuxShutdownSwitch = L4_MABX_B.SFunction1_o12_l;
13035 L4_MABX_B.RemoteAccelEnableSwitch = L4_MABX_B.SFunction1_o13_g;
13036 L4_MABX_B.EngRetarderSelection = L4_MABX_B.SFunction1_o14_h;
13037 L4_MABX_B.ABSFullyOperational = L4_MABX_B.SFunction1_o15_n;
13038 L4_MABX_B.EBSRedWarningSignal = L4_MABX_B.SFunction1_o16_p;
13039 L4_MABX_B.ABS_EBSAmberWarningSignal = L4_MABX_B.SFunction1_o17_a;
13040 L4_MABX_B.ATC_ASRInformationSignal = L4_MABX_B.SFunction1_o18_p;
13041 L4_MABX_B.SrcAddrssOfCtrllngDvcFrBrkCntrl = L4_MABX_B.SFunction1_o19_b;
13042 L4_MABX_B.HaltBrakeSwitch = L4_MABX_B.SFunction1_o20_c;
13043 L4_MABX_B.TrailerABSStatus = L4_MABX_B.SFunction1_o21_l;
13044 L4_MABX_B.TrctrMntdTrilerABSWarningSignal = L4_MABX_B.SFunction1_o22_i;
13045 }
13046
13047 /* End of Outputs for SubSystem: '<S815>/CAN_TX_100ms' */
13048
13049 /* Outputs for Atomic SubSystem: '<S815>/CAN_TX_10ms' */
13050
13051 /* DataTypeConversion: '<S917>/Data Type Conversion4' */
13052 L4_MABX_B.DataTypeConversion4_k = L4_MABX_B.Diff;
13053
13054 /* DataTypeConversion: '<S906>/Data Type Conversion' incorporates:
13055 * Constant: '<S820>/CANT_ACCS_E4_CHANNEL_APV'
13056 */
13057 L4_MABX_B.DataTypeConversion_ee = (uint8_T)
13058 L4_MABX_P.CANT_ACCS_E4_CHANNEL_APV_Value;
13059
13060 /* S-Function (sfix_bitop): '<S914>/Operator' */
13061 L4_MABX_B.Operator_nro = (uint8_T)(L4_MABX_B.DataTypeConversion_ee &
13062 L4_MABX_P.Operator_BitMask_iv);
13063
13064 /* DataTypeConversion: '<S914>/DataType' */
13065 L4_MABX_B.DataType_i = L4_MABX_B.Operator_nro;
13066
13067 /* ArithShift: '<S906>/Shift_Arithmetic 2' */
13068 L4_MABX_B.Shift_Arithmetic2_m = ldexp(L4_MABX_B.DataType_i, (-3));
13069
13070 /* DataTypeConversion: '<S906>/Data Type Conversion5' */
13071 L4_MABX_B.DataTypeConversion5_ef = (L4_MABX_B.Shift_Arithmetic2_m != 0.0);
13072
13073 /* Outputs for Enabled SubSystem: '<S917>/ACCS' incorporates:
13074 * EnablePort: '<S918>/Enable'
13075 */
13076 if (L4_MABX_B.DataTypeConversion5_ef) {
13077 /* S-Function (rti_commonblock): '<S918>/S-Function1' */
13078 /* This comment workarounds a code generation problem */
13079
13080 /* dSPACE RTICAN TX Message Block: "ACCS" Id:418393572 */
13081 {
13082 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
13083
13084 Float32 delayTime = 0.0;
13085
13086 /* ... Read status and timestamp info (previous message) */
13087 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]);
13088
13089 /* Convert timestamp */
13090 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->processed) {
13091 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->timestamp =
13092 rtk_dsts_time_to_simtime_convert
13093 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->timestamp);
13094 }
13095
13096 /* Messages with timestamp zero have been received in pause/stop state
13097 and must not be handled.
13098 */
13099 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->timestamp > 0.0) {
13100 L4_MABX_B.SFunction1_o1_a = (real_T)
13101 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->processed;
13102 L4_MABX_B.SFunction1_o2_dz = (real_T)
13103 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->timestamp;
13104 L4_MABX_B.SFunction1_o3_kl = (real_T)
13105 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->deltatime;
13106 L4_MABX_B.SFunction1_o4_hg = (real_T)
13107 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->delaytime;
13108 }
13109
13110 /* ... Encode Simulink signals of TX and RM blocks*/
13111 {
13112 rtican_Signal_t CAN_Sgn;
13113
13114 /* ...... "LongitudinalAccelerationExRange" (16|16, standard signal, unsigned int, little endian) */
13115 /* Add or substract 0.5 in order to round to nearest integer */
13116 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion4_k -
13117 ( -320 ) ) / 0.01 + 0.5);
13118 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
13119 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
13120 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte1;
13121 }
13122
13123 /* mask unused bits with '1' */
13124 CAN_Msg[0] |= 0xFF;
13125 CAN_Msg[1] |= 0xFF;
13126 CAN_Msg[4] |= 0xFF;
13127 CAN_Msg[5] |= 0xFF;
13128 CAN_Msg[6] |= 0xFF;
13129 CAN_Msg[7] |= 0xFF;
13130
13131 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
13132 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4], 8,
13133 &(CAN_Msg[0]), delayTime);
13134 }
13135 }
13136
13137 /* End of Outputs for SubSystem: '<S917>/ACCS' */
13138
13139 /* S-Function (sfix_bitop): '<S911>/Operator' */
13140 L4_MABX_B.Operator_c1 = (uint8_T)(L4_MABX_B.DataTypeConversion_ee &
13141 L4_MABX_P.Operator_BitMask_pz);
13142
13143 /* DataTypeConversion: '<S911>/DataType' */
13144 L4_MABX_B.DataType_mg = L4_MABX_B.Operator_c1;
13145
13146 /* S-Function (sfix_bitop): '<S912>/Operator' */
13147 L4_MABX_B.Operator_hx = (uint8_T)(L4_MABX_B.DataTypeConversion_ee &
13148 L4_MABX_P.Operator_BitMask_kq);
13149
13150 /* DataTypeConversion: '<S912>/DataType' */
13151 L4_MABX_B.DataType_o = L4_MABX_B.Operator_hx;
13152
13153 /* S-Function (sfix_bitop): '<S913>/Operator' */
13154 L4_MABX_B.Operator_dl = (uint8_T)(L4_MABX_B.DataTypeConversion_ee &
13155 L4_MABX_P.Operator_BitMask_a3);
13156
13157 /* DataTypeConversion: '<S913>/DataType' */
13158 L4_MABX_B.DataType_c = L4_MABX_B.Operator_dl;
13159
13160 /* S-Function (sfix_bitop): '<S915>/Operator' */
13161 L4_MABX_B.Operator_ok = (uint8_T)(L4_MABX_B.DataTypeConversion_ee &
13162 L4_MABX_P.Operator_BitMask_jj);
13163
13164 /* DataTypeConversion: '<S915>/DataType' */
13165 L4_MABX_B.DataType_j = L4_MABX_B.Operator_ok;
13166
13167 /* S-Function (sfix_bitop): '<S916>/Operator' */
13168 L4_MABX_B.Operator_hu = (uint8_T)(L4_MABX_B.DataTypeConversion_ee &
13169 L4_MABX_P.Operator_BitMask_ej);
13170
13171 /* DataTypeConversion: '<S916>/DataType' */
13172 L4_MABX_B.DataType_f = L4_MABX_B.Operator_hu;
13173
13174 /* DataTypeConversion: '<S906>/Data Type Conversion2' */
13175 L4_MABX_B.DataTypeConversion2_l4 = (L4_MABX_B.DataType_mg != 0);
13176
13177 /* ArithShift: '<S906>/Shift_Arithmetic ' */
13178 L4_MABX_B.Shift_Arithmetic_o = ldexp(L4_MABX_B.DataType_o, (-1));
13179
13180 /* DataTypeConversion: '<S906>/Data Type Conversion3' */
13181 L4_MABX_B.DataTypeConversion3_kb = (L4_MABX_B.Shift_Arithmetic_o != 0.0);
13182
13183 /* ArithShift: '<S906>/Shift_Arithmetic 1' */
13184 L4_MABX_B.Shift_Arithmetic1_c = ldexp(L4_MABX_B.DataType_c, (-2));
13185
13186 /* DataTypeConversion: '<S906>/Data Type Conversion4' */
13187 L4_MABX_B.DataTypeConversion4_ee = (L4_MABX_B.Shift_Arithmetic1_c != 0.0);
13188
13189 /* ArithShift: '<S906>/Shift_Arithmetic 3' */
13190 L4_MABX_B.Shift_Arithmetic3_c = ldexp(L4_MABX_B.DataType_j, (-4));
13191
13192 /* DataTypeConversion: '<S906>/Data Type Conversion6' */
13193 L4_MABX_B.DataTypeConversion6_h = (L4_MABX_B.Shift_Arithmetic3_c != 0.0);
13194
13195 /* ArithShift: '<S906>/Shift_Arithmetic 4' */
13196 L4_MABX_B.Shift_Arithmetic4_b = ldexp(L4_MABX_B.DataType_f, (-5));
13197
13198 /* DataTypeConversion: '<S906>/Data Type Conversion7' */
13199 L4_MABX_B.DataTypeConversion7_b = (L4_MABX_B.Shift_Arithmetic4_b != 0.0);
13200
13201 /* DataTypeConversion: '<S925>/Data Type Conversion1' */
13202 L4_MABX_B.DataTypeConversion1_a = L4_MABX_B.SFunction1_o2_lx;
13203
13204 /* DataTypeConversion: '<S925>/Data Type Conversion2' */
13205 L4_MABX_B.DataTypeConversion2_nm = L4_MABX_B.SFunction1_o3_hl;
13206
13207 /* DataTypeConversion: '<S925>/Data Type Conversion3' */
13208 L4_MABX_B.DataTypeConversion3_h = L4_MABX_B.SFunction1_o4_ms;
13209
13210 /* DataTypeConversion: '<S925>/Data Type Conversion4' */
13211 L4_MABX_B.DataTypeConversion4_c = L4_MABX_B.SFunction1_o1_am;
13212
13213 /* DataTypeConversion: '<S925>/Data Type Conversion5' */
13214 L4_MABX_B.DataTypeConversion5_p = L4_MABX_B.SFunction1_o5_lc;
13215
13216 /* DataTypeConversion: '<S925>/Data Type Conversion6' */
13217 L4_MABX_B.DataTypeConversion6_f = L4_MABX_B.SFunction1_o6_o;
13218
13219 /* DataTypeConversion: '<S925>/Data Type Conversion7' */
13220 L4_MABX_B.DataTypeConversion7_h = L4_MABX_B.SFunction1_o7_jh;
13221
13222 /* DataTypeConversion: '<S925>/Data Type Conversion8' */
13223 L4_MABX_B.DataTypeConversion8_l = L4_MABX_B.SFunction1_o8_a0;
13224
13225 /* DataTypeConversion: '<S907>/Data Type Conversion' incorporates:
13226 * Constant: '<S820>/CANT_EEC1_00_CHANNEL_APV'
13227 */
13228 L4_MABX_B.DataTypeConversion_n3 = (uint8_T)
13229 L4_MABX_P.CANT_EEC1_00_CHANNEL_APV_Value;
13230
13231 /* S-Function (sfix_bitop): '<S922>/Operator' */
13232 L4_MABX_B.Operator_i2 = (uint8_T)(L4_MABX_B.DataTypeConversion_n3 &
13233 L4_MABX_P.Operator_BitMask_bx);
13234
13235 /* DataTypeConversion: '<S922>/DataType' */
13236 L4_MABX_B.DataType_px = L4_MABX_B.Operator_i2;
13237
13238 /* ArithShift: '<S907>/Shift_Arithmetic 2' */
13239 L4_MABX_B.Shift_Arithmetic2_p = ldexp(L4_MABX_B.DataType_px, (-3));
13240
13241 /* DataTypeConversion: '<S907>/Data Type Conversion5' */
13242 L4_MABX_B.DataTypeConversion5_iw = (L4_MABX_B.Shift_Arithmetic2_p != 0.0);
13243
13244 /* Outputs for Enabled SubSystem: '<S925>/EEC1_00' incorporates:
13245 * EnablePort: '<S927>/Enable'
13246 */
13247 if (L4_MABX_B.DataTypeConversion5_iw) {
13248 /* S-Function (rti_commonblock): '<S927>/S-Function1' */
13249 /* This comment workarounds a code generation problem */
13250
13251 /* dSPACE RTICAN TX Message Block: "EEC1_00" Id:217056256 */
13252 {
13253 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
13254
13255 Float32 delayTime = 0.0;
13256
13257 /* ... Read status and timestamp info (previous message) */
13258 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]);
13259
13260 /* Convert timestamp */
13261 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->processed) {
13262 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->timestamp =
13263 rtk_dsts_time_to_simtime_convert
13264 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->timestamp);
13265 }
13266
13267 /* Messages with timestamp zero have been received in pause/stop state
13268 and must not be handled.
13269 */
13270 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->timestamp > 0.0) {
13271 L4_MABX_B.SFunction1_o1_pt = (real_T)
13272 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->processed;
13273 L4_MABX_B.SFunction1_o2_he = (real_T)
13274 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->timestamp;
13275 L4_MABX_B.SFunction1_o3_gw = (real_T)
13276 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->deltatime;
13277 L4_MABX_B.SFunction1_o4_h = (real_T)
13278 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->delaytime;
13279 }
13280
13281 /* ... Encode Simulink signals of TX and RM blocks*/
13282 {
13283 rtican_Signal_t CAN_Sgn;
13284
13285 /* ...... "SPN899_EngineTorqueMode" (0|4, standard signal, unsigned int, little endian) */
13286 /* Add or substract 0.5 in order to round to nearest integer */
13287 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion4_c ) +
13288 0.5);
13289 CAN_Sgn.UnsignedSgn &= 0x0000000F;
13290 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
13291
13292 /* ...... "SPN4154_ActEngPercTorqueFrac" (4|4, standard signal, unsigned int, little endian) */
13293 /* Add or substract 0.5 in order to round to nearest integer */
13294 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_a - ( 0 )
13295 ) / 0.125 + 0.5);
13296 CAN_Sgn.UnsignedSgn &= 0x0000000F;
13297 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
13298 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
13299
13300 /* ...... "SPN512_DrvrDemEngPercTrq" (8|8, standard signal, unsigned int, little endian) */
13301 /* Add or substract 0.5 in order to round to nearest integer */
13302 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.DataTypeConversion2_nm -
13303 ( -125 ) + 0.5);
13304 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13305 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
13306
13307 /* ...... "SPN513_ActEngPercTorque" (16|8, standard signal, unsigned int, little endian) */
13308 /* Add or substract 0.5 in order to round to nearest integer */
13309 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.DataTypeConversion3_h - ( -125
13310 ) + 0.5);
13311 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13312 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
13313
13314 /* ...... "SPN190_EngineSpeed" (24|16, standard signal, unsigned int, little endian) */
13315 /* Add or substract 0.5 in order to round to nearest integer */
13316 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion5_p - ( 0 )
13317 ) / 0.125 + 0.5);
13318 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
13319 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
13320 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte1;
13321
13322 /* ...... "SPN1483_SAOfCtrlDevForEngineCtrl" (40|8, standard signal, unsigned int, little endian) */
13323 /* Add or substract 0.5 in order to round to nearest integer */
13324 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion6_f ) +
13325 0.5);
13326 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13327 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
13328
13329 /* ...... "SPN1675_EngineStarterMode" (48|4, standard signal, unsigned int, little endian) */
13330 /* Add or substract 0.5 in order to round to nearest integer */
13331 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion7_h ) +
13332 0.5);
13333 CAN_Sgn.UnsignedSgn &= 0x0000000F;
13334 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
13335
13336 /* ...... "SPN2432_EngDemPercTrq" (56|8, standard signal, unsigned int, little endian) */
13337 /* Add or substract 0.5 in order to round to nearest integer */
13338 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.DataTypeConversion8_l - ( -125
13339 ) + 0.5);
13340 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13341 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
13342 }
13343
13344 /* mask unused bits with '1' */
13345 CAN_Msg[6] |= 0xF0;
13346
13347 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
13348 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400], 8,
13349 &(CAN_Msg[0]), delayTime);
13350 }
13351 }
13352
13353 /* End of Outputs for SubSystem: '<S925>/EEC1_00' */
13354
13355 /* DataTypeConversion: '<S926>/Data Type Conversion1' */
13356 L4_MABX_B.DataTypeConversion1_h = L4_MABX_B.SFunction1_o2_lx;
13357
13358 /* DataTypeConversion: '<S926>/Data Type Conversion2' */
13359 L4_MABX_B.DataTypeConversion2_pw = L4_MABX_B.SFunction1_o3_hl;
13360
13361 /* DataTypeConversion: '<S926>/Data Type Conversion3' */
13362 L4_MABX_B.DataTypeConversion3_i = L4_MABX_B.SFunction1_o4_ms;
13363
13364 /* DataTypeConversion: '<S926>/Data Type Conversion4' */
13365 L4_MABX_B.DataTypeConversion4_f = L4_MABX_B.SFunction1_o1_am;
13366
13367 /* DataTypeConversion: '<S926>/Data Type Conversion5' */
13368 L4_MABX_B.DataTypeConversion5_j1 = L4_MABX_B.SFunction1_o5_lc;
13369
13370 /* DataTypeConversion: '<S926>/Data Type Conversion6' */
13371 L4_MABX_B.DataTypeConversion6_d = L4_MABX_B.SFunction1_o6_o;
13372
13373 /* DataTypeConversion: '<S926>/Data Type Conversion7' */
13374 L4_MABX_B.DataTypeConversion7_k = L4_MABX_B.SFunction1_o7_jh;
13375
13376 /* DataTypeConversion: '<S926>/Data Type Conversion8' */
13377 L4_MABX_B.DataTypeConversion8_a = L4_MABX_B.SFunction1_o8_a0;
13378
13379 /* S-Function (sfix_bitop): '<S923>/Operator' */
13380 L4_MABX_B.Operator_lk = (uint8_T)(L4_MABX_B.DataTypeConversion_n3 &
13381 L4_MABX_P.Operator_BitMask_gc);
13382
13383 /* DataTypeConversion: '<S923>/DataType' */
13384 L4_MABX_B.DataType_iu = L4_MABX_B.Operator_lk;
13385
13386 /* ArithShift: '<S907>/Shift_Arithmetic 3' */
13387 L4_MABX_B.Shift_Arithmetic3_h = ldexp(L4_MABX_B.DataType_iu, (-4));
13388
13389 /* DataTypeConversion: '<S907>/Data Type Conversion6' */
13390 L4_MABX_B.DataTypeConversion6_f4 = (L4_MABX_B.Shift_Arithmetic3_h != 0.0);
13391
13392 /* Outputs for Enabled SubSystem: '<S926>/EEC1_00' incorporates:
13393 * EnablePort: '<S928>/Enable'
13394 */
13395 if (L4_MABX_B.DataTypeConversion6_f4) {
13396 /* S-Function (rti_commonblock): '<S928>/S-Function1' */
13397 /* This comment workarounds a code generation problem */
13398
13399 /* dSPACE RTICAN TX Message Block: "EEC1_00" Id:217056256 */
13400 {
13401 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
13402
13403 Float32 delayTime = 0.0;
13404
13405 /* ... Read status and timestamp info (previous message) */
13406 can_tp1_msg_read(can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]);
13407
13408 /* Convert timestamp */
13409 if (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->processed) {
13410 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->timestamp =
13411 rtk_dsts_time_to_simtime_convert
13412 (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->timestamp);
13413 }
13414
13415 /* Messages with timestamp zero have been received in pause/stop state
13416 and must not be handled.
13417 */
13418 if (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->timestamp > 0.0) {
13419 L4_MABX_B.SFunction1_o1_gm = (real_T)
13420 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->processed;
13421 L4_MABX_B.SFunction1_o2_e = (real_T)
13422 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->timestamp;
13423 L4_MABX_B.SFunction1_o3_m = (real_T)
13424 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->deltatime;
13425 L4_MABX_B.SFunction1_o4_j = (real_T)
13426 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->delaytime;
13427 }
13428
13429 /* ... Encode Simulink signals of TX and RM blocks*/
13430 {
13431 rtican_Signal_t CAN_Sgn;
13432
13433 /* ...... "SPN899_EngineTorqueMode" (0|4, standard signal, unsigned int, little endian) */
13434 /* Add or substract 0.5 in order to round to nearest integer */
13435 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion4_f ) +
13436 0.5);
13437 CAN_Sgn.UnsignedSgn &= 0x0000000F;
13438 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
13439
13440 /* ...... "SPN4154_ActEngPercTorqueFrac" (4|4, standard signal, unsigned int, little endian) */
13441 /* Add or substract 0.5 in order to round to nearest integer */
13442 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_h - ( 0 )
13443 ) / 0.125 + 0.5);
13444 CAN_Sgn.UnsignedSgn &= 0x0000000F;
13445 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
13446 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
13447
13448 /* ...... "SPN512_DrvrDemEngPercTrq" (8|8, standard signal, unsigned int, little endian) */
13449 /* Add or substract 0.5 in order to round to nearest integer */
13450 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.DataTypeConversion2_pw -
13451 ( -125 ) + 0.5);
13452 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13453 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
13454
13455 /* ...... "SPN513_ActEngPercTorque" (16|8, standard signal, unsigned int, little endian) */
13456 /* Add or substract 0.5 in order to round to nearest integer */
13457 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.DataTypeConversion3_i - ( -125
13458 ) + 0.5);
13459 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13460 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
13461
13462 /* ...... "SPN190_EngineSpeed" (24|16, standard signal, unsigned int, little endian) */
13463 /* Add or substract 0.5 in order to round to nearest integer */
13464 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion5_j1 - ( 0
13465 ) ) / 0.125 + 0.5);
13466 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
13467 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
13468 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte1;
13469
13470 /* ...... "SPN1483_SAOfCtrlDevForEngineCtrl" (40|8, standard signal, unsigned int, little endian) */
13471 /* Add or substract 0.5 in order to round to nearest integer */
13472 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion6_d ) +
13473 0.5);
13474 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13475 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
13476
13477 /* ...... "SPN1675_EngineStarterMode" (48|4, standard signal, unsigned int, little endian) */
13478 /* Add or substract 0.5 in order to round to nearest integer */
13479 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion7_k ) +
13480 0.5);
13481 CAN_Sgn.UnsignedSgn &= 0x0000000F;
13482 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
13483
13484 /* ...... "SPN2432_EngDemPercTrq" (56|8, standard signal, unsigned int, little endian) */
13485 /* Add or substract 0.5 in order to round to nearest integer */
13486 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.DataTypeConversion8_a - ( -125
13487 ) + 0.5);
13488 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13489 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
13490 }
13491
13492 /* mask unused bits with '1' */
13493 CAN_Msg[6] |= 0xF0;
13494
13495 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
13496 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400], 8,
13497 &(CAN_Msg[0]), delayTime);
13498 }
13499 }
13500
13501 /* End of Outputs for SubSystem: '<S926>/EEC1_00' */
13502
13503 /* S-Function (sfix_bitop): '<S919>/Operator' */
13504 L4_MABX_B.Operator_jo = (uint8_T)(L4_MABX_B.DataTypeConversion_n3 &
13505 L4_MABX_P.Operator_BitMask_m);
13506
13507 /* DataTypeConversion: '<S919>/DataType' */
13508 L4_MABX_B.DataType_nn = L4_MABX_B.Operator_jo;
13509
13510 /* S-Function (sfix_bitop): '<S920>/Operator' */
13511 L4_MABX_B.Operator_i1 = (uint8_T)(L4_MABX_B.DataTypeConversion_n3 &
13512 L4_MABX_P.Operator_BitMask_bj);
13513
13514 /* DataTypeConversion: '<S920>/DataType' */
13515 L4_MABX_B.DataType_h = L4_MABX_B.Operator_i1;
13516
13517 /* S-Function (sfix_bitop): '<S921>/Operator' */
13518 L4_MABX_B.Operator_k = (uint8_T)(L4_MABX_B.DataTypeConversion_n3 &
13519 L4_MABX_P.Operator_BitMask_h);
13520
13521 /* DataTypeConversion: '<S921>/DataType' */
13522 L4_MABX_B.DataType_ii = L4_MABX_B.Operator_k;
13523
13524 /* S-Function (sfix_bitop): '<S924>/Operator' */
13525 L4_MABX_B.Operator_ox = (uint8_T)(L4_MABX_B.DataTypeConversion_n3 &
13526 L4_MABX_P.Operator_BitMask_ms);
13527
13528 /* DataTypeConversion: '<S924>/DataType' */
13529 L4_MABX_B.DataType_i2 = L4_MABX_B.Operator_ox;
13530
13531 /* DataTypeConversion: '<S907>/Data Type Conversion2' */
13532 L4_MABX_B.DataTypeConversion2_hn = (L4_MABX_B.DataType_nn != 0);
13533
13534 /* ArithShift: '<S907>/Shift_Arithmetic ' */
13535 L4_MABX_B.Shift_Arithmetic_l = ldexp(L4_MABX_B.DataType_h, (-1));
13536
13537 /* DataTypeConversion: '<S907>/Data Type Conversion3' */
13538 L4_MABX_B.DataTypeConversion3_jc = (L4_MABX_B.Shift_Arithmetic_l != 0.0);
13539
13540 /* ArithShift: '<S907>/Shift_Arithmetic 1' */
13541 L4_MABX_B.Shift_Arithmetic1_m = ldexp(L4_MABX_B.DataType_ii, (-2));
13542
13543 /* DataTypeConversion: '<S907>/Data Type Conversion4' */
13544 L4_MABX_B.DataTypeConversion4_mo = (L4_MABX_B.Shift_Arithmetic1_m != 0.0);
13545
13546 /* ArithShift: '<S907>/Shift_Arithmetic 4' */
13547 L4_MABX_B.Shift_Arithmetic4_k = ldexp(L4_MABX_B.DataType_i2, (-5));
13548
13549 /* DataTypeConversion: '<S907>/Data Type Conversion7' */
13550 L4_MABX_B.DataTypeConversion7_cn = (L4_MABX_B.Shift_Arithmetic4_k != 0.0);
13551
13552 /* DataTypeConversion: '<S910>/Data Type Conversion' */
13553 L4_MABX_B.DataTypeConversion_as = AutonomousOutputEnabled;
13554
13555 /* Switch: '<S944>/Switch' incorporates:
13556 * Constant: '<S944>/Constant'
13557 * Constant: '<S944>/Constant1'
13558 */
13559 if (L4_MABX_B.DataTypeConversion_as != 0) {
13560 L4_MABX_B.Switch_i = L4_MABX_P.Constant_Value_h3w;
13561 } else {
13562 L4_MABX_B.Switch_i = L4_MABX_P.Constant1_Value_nf;
13563 }
13564
13565 /* End of Switch: '<S944>/Switch' */
13566
13567 /* DataTypeConversion: '<S942>/Data Type Conversion' */
13568 L4_MABX_B.DataTypeConversion_kg = L4_MABX_B.Switch_i;
13569
13570 /* RelationalOperator: '<S961>/Operator' incorporates:
13571 * Constant: '<S943>/Constant'
13572 * Constant: '<S943>/Constant6'
13573 */
13574 L4_MABX_B.Operator_fq = (PROPB_REAX_1_E4_DESIRED_OPMODE_APV ==
13575 L4_MABX_P.Constant_Value_ha);
13576
13577 /* Outputs for Enabled SubSystem: '<S943>/DEFAULT_TRQ_CTRL_MODE' */
13578 L4_MABX_ALL_CTRL_DISABLED(L4_MABX_B.Operator_fq, &L4_MABX_B.Merge,
13579 &L4_MABX_P.DEFAULT_TRQ_CTRL_MODE);
13580
13581 /* End of Outputs for SubSystem: '<S943>/DEFAULT_TRQ_CTRL_MODE' */
13582
13583 /* Switch: '<S960>/Switch' incorporates:
13584 * Constant: '<S960>/zero'
13585 */
13586 if (L4_MABX_B.DataTypeConversion_as != 0) {
13587 /* MultiPortSwitch: '<S960>/Multiport_Switch' incorporates:
13588 * Constant: '<S960>/Constant1'
13589 * Constant: '<S960>/Constant7'
13590 */
13591 switch (PROPB_REAX_1_E4_DES_POS_SIG_SRC_APV) {
13592 case ENUM_STEERING_POS_SIGNAL_SOURCE_T_SW_EMULATION:
13593 L4_MABX_B.Multiport_Switch = PROPB_REAX_1_E4_DESIRED_POSITION_APV;
13594 break;
13595
13596 case ENUM_STEERING_POS_SIGNAL_SOURCE_T_ESTIMATION:
13597 L4_MABX_B.Multiport_Switch = DesiredSteeringAngle;
13598 break;
13599
13600 default:
13601 L4_MABX_B.Multiport_Switch = PROPB_REAX_1_E4_DESIRED_POSITION_APV;
13602 break;
13603 }
13604
13605 /* End of MultiPortSwitch: '<S960>/Multiport_Switch' */
13606 L4_MABX_B.Switch = L4_MABX_B.Multiport_Switch;
13607 } else {
13608 L4_MABX_B.Switch = L4_MABX_P.zero_Value_m;
13609 }
13610
13611 /* End of Switch: '<S960>/Switch' */
13612
13613 /* RelationalOperator: '<S970>/Operator_MX' incorporates:
13614 * Constant: '<S970>/MX'
13615 */
13616 L4_MABX_B.Operator_MX = (L4_MABX_B.Switch > L4_MABX_P.MX_Value);
13617
13618 /* RelationalOperator: '<S970>/Operator_MN' incorporates:
13619 * Constant: '<S970>/MN'
13620 */
13621 L4_MABX_B.Operator_MN = (L4_MABX_B.Switch < L4_MABX_P.MN_Value);
13622
13623 /* Switch: '<S970>/Switch2' incorporates:
13624 * Constant: '<S970>/MX'
13625 * Switch: '<S970>/Switch1'
13626 */
13627 if (L4_MABX_B.Operator_MX) {
13628 L4_MABX_B.Switch2 = L4_MABX_P.MX_Value;
13629 } else {
13630 if (L4_MABX_B.Operator_MN) {
13631 /* Switch: '<S970>/Switch1' incorporates:
13632 * Constant: '<S970>/MN'
13633 */
13634 L4_MABX_B.Switch1 = L4_MABX_P.MN_Value;
13635 } else {
13636 /* Switch: '<S970>/Switch1' */
13637 L4_MABX_B.Switch1 = L4_MABX_B.Switch;
13638 }
13639
13640 L4_MABX_B.Switch2 = L4_MABX_B.Switch1;
13641 }
13642
13643 /* End of Switch: '<S970>/Switch2' */
13644
13645 /* DataTypeConversion: '<S970>/DataType' */
13646 L4_MABX_B.DataType_n = L4_MABX_B.Switch2;
13647
13648 /* RelationalOperator: '<S962>/Operator' incorporates:
13649 * Constant: '<S943>/Constant1'
13650 * Constant: '<S943>/Constant6'
13651 */
13652 L4_MABX_B.Operator_fx = (PROPB_REAX_1_E4_DESIRED_OPMODE_APV ==
13653 L4_MABX_P.Constant1_Value_h5);
13654
13655 /* Outputs for Enabled SubSystem: '<S943>/POSITION_CONTROL_MODE' incorporates:
13656 * EnablePort: '<S971>/Enable'
13657 */
13658 if (L4_MABX_B.Operator_fx) {
13659 /* Product: '<S971>/Product' incorporates:
13660 * Constant: '<S971>/Constant'
13661 */
13662 L4_MABX_B.Product = L4_MABX_B.DataType_n * L4_MABX_P.Constant_Value_m;
13663
13664 /* DataTypeConversion: '<S971>/Data Type Conversion' */
13665 PositionFinalLimited = floor(L4_MABX_B.Product);
13666 if (PositionFinalLimited < 2.147483648E+9) {
13667 if (PositionFinalLimited >= -2.147483648E+9) {
13668 i = (int32_T)PositionFinalLimited;
13669 } else {
13670 i = MIN_int32_T;
13671 }
13672 } else {
13673 i = MAX_int32_T;
13674 }
13675
13676 L4_MABX_B.Merge = i;
13677
13678 /* End of DataTypeConversion: '<S971>/Data Type Conversion' */
13679 }
13680
13681 /* End of Outputs for SubSystem: '<S943>/POSITION_CONTROL_MODE' */
13682
13683 /* RelationalOperator: '<S963>/Operator' incorporates:
13684 * Constant: '<S943>/Constant2'
13685 * Constant: '<S943>/Constant6'
13686 */
13687 L4_MABX_B.Operator_k1 = (PROPB_REAX_1_E4_DESIRED_OPMODE_APV ==
13688 L4_MABX_P.Constant2_Value_k);
13689
13690 /* Outputs for Enabled SubSystem: '<S943>/EXT_TRQ_CTRL_MODE_A' */
13691 L4_MABX_ALL_CTRL_DISABLED(L4_MABX_B.Operator_k1, &L4_MABX_B.Merge,
13692 &L4_MABX_P.EXT_TRQ_CTRL_MODE_A);
13693
13694 /* End of Outputs for SubSystem: '<S943>/EXT_TRQ_CTRL_MODE_A' */
13695
13696 /* RelationalOperator: '<S964>/Operator' incorporates:
13697 * Constant: '<S943>/Constant3'
13698 * Constant: '<S943>/Constant6'
13699 */
13700 L4_MABX_B.Operator_fj = (PROPB_REAX_1_E4_DESIRED_OPMODE_APV ==
13701 L4_MABX_P.Constant3_Value_c);
13702
13703 /* Outputs for Enabled SubSystem: '<S943>/ALL_CTRL_DISABLED' */
13704 L4_MABX_ALL_CTRL_DISABLED(L4_MABX_B.Operator_fj, &L4_MABX_B.Merge,
13705 &L4_MABX_P.ALL_CTRL_DISABLED);
13706
13707 /* End of Outputs for SubSystem: '<S943>/ALL_CTRL_DISABLED' */
13708
13709 /* RelationalOperator: '<S965>/Operator' incorporates:
13710 * Constant: '<S943>/Constant4'
13711 * Constant: '<S943>/Constant6'
13712 */
13713 L4_MABX_B.Operator_gm = (PROPB_REAX_1_E4_DESIRED_OPMODE_APV ==
13714 L4_MABX_P.Constant4_Value_d);
13715
13716 /* Outputs for Enabled SubSystem: '<S943>/EXT_TRQ_CTRL_MODE_B' */
13717 L4_MABX_ALL_CTRL_DISABLED(L4_MABX_B.Operator_gm, &L4_MABX_B.Merge,
13718 &L4_MABX_P.EXT_TRQ_CTRL_MODE_B);
13719
13720 /* End of Outputs for SubSystem: '<S943>/EXT_TRQ_CTRL_MODE_B' */
13721
13722 /* RelationalOperator: '<S966>/Operator' incorporates:
13723 * Constant: '<S943>/Constant5'
13724 * Constant: '<S943>/Constant6'
13725 */
13726 L4_MABX_B.Operator_ah = (PROPB_REAX_1_E4_DESIRED_OPMODE_APV ==
13727 L4_MABX_P.Constant5_Value_k);
13728
13729 /* Outputs for Enabled SubSystem: '<S943>/EXT_TRQ_CTRL_MODE_C' */
13730 L4_MABX_ALL_CTRL_DISABLED(L4_MABX_B.Operator_ah, &L4_MABX_B.Merge,
13731 &L4_MABX_P.EXT_TRQ_CTRL_MODE_C);
13732
13733 /* End of Outputs for SubSystem: '<S943>/EXT_TRQ_CTRL_MODE_C' */
13734
13735 /* DataTypeConversion: '<S942>/Data Type Conversion2' */
13736 L4_MABX_B.DataTypeConversion2_kj = (uint32_T)L4_MABX_B.Merge;
13737
13738 /* S-Function (sfix_bitop): '<S947>/Operator' */
13739 L4_MABX_B.Operator_n = L4_MABX_B.DataTypeConversion2_kj &
13740 L4_MABX_P.Operator_BitMask_ia;
13741
13742 /* DataTypeConversion: '<S947>/DataType' */
13743 tmp = L4_MABX_B.Operator_n;
13744 if (tmp > 255U) {
13745 tmp = 255U;
13746 }
13747
13748 L4_MABX_B.DataType_ov = (uint8_T)tmp;
13749
13750 /* End of DataTypeConversion: '<S947>/DataType' */
13751
13752 /* S-Function (sfix_bitop): '<S948>/Operator' */
13753 L4_MABX_B.Operator_nf = L4_MABX_B.DataTypeConversion2_kj &
13754 L4_MABX_P.Operator_BitMask_oc;
13755
13756 /* DataTypeConversion: '<S948>/DataType' */
13757 tmp = L4_MABX_B.Operator_nf;
13758 if (tmp > 65535U) {
13759 tmp = 65535U;
13760 }
13761
13762 L4_MABX_B.DataType_byu = (uint16_T)tmp;
13763
13764 /* End of DataTypeConversion: '<S948>/DataType' */
13765
13766 /* ArithShift: '<S942>/Shift_Arithmetic ' */
13767 L4_MABX_B.Shift_Arithmetic_c = (uint16_T)((uint32_T)L4_MABX_B.DataType_byu >>
13768 8);
13769
13770 /* DataTypeConversion: '<S942>/Data Type Conversion4' */
13771 tmp_0 = L4_MABX_B.Shift_Arithmetic_c;
13772 if (tmp_0 > 255) {
13773 tmp_0 = 255U;
13774 }
13775
13776 L4_MABX_B.DataTypeConversion4_pt = (uint8_T)tmp_0;
13777
13778 /* End of DataTypeConversion: '<S942>/Data Type Conversion4' */
13779
13780 /* S-Function (sfix_bitop): '<S949>/Operator' */
13781 L4_MABX_B.Operator_m = L4_MABX_B.DataTypeConversion2_kj &
13782 L4_MABX_P.Operator_BitMask_me;
13783
13784 /* DataTypeConversion: '<S949>/DataType' */
13785 L4_MABX_B.DataType_k4 = L4_MABX_B.Operator_m;
13786
13787 /* ArithShift: '<S942>/Shift_Arithmetic 1' */
13788 L4_MABX_B.Shift_Arithmetic1_a = L4_MABX_B.DataType_k4 >> 16;
13789
13790 /* DataTypeConversion: '<S942>/Data Type Conversion5' */
13791 tmp = L4_MABX_B.Shift_Arithmetic1_a;
13792 if (tmp > 255U) {
13793 tmp = 255U;
13794 }
13795
13796 L4_MABX_B.DataTypeConversion5_mt = (uint8_T)tmp;
13797
13798 /* End of DataTypeConversion: '<S942>/Data Type Conversion5' */
13799
13800 /* S-Function (sfix_bitop): '<S950>/Operator' */
13801 L4_MABX_B.Operator_me = L4_MABX_B.DataTypeConversion2_kj &
13802 L4_MABX_P.Operator_BitMask_jd;
13803
13804 /* DataTypeConversion: '<S950>/DataType' */
13805 L4_MABX_B.DataType_ky = L4_MABX_B.Operator_me;
13806
13807 /* ArithShift: '<S942>/Shift_Arithmetic 2' */
13808 L4_MABX_B.Shift_Arithmetic2_l = L4_MABX_B.DataType_ky >> 24;
13809
13810 /* DataTypeConversion: '<S942>/Data Type Conversion6' */
13811 tmp = L4_MABX_B.Shift_Arithmetic2_l;
13812 if (tmp > 255U) {
13813 tmp = 255U;
13814 }
13815
13816 L4_MABX_B.DataTypeConversion6_pe = (uint8_T)tmp;
13817
13818 /* End of DataTypeConversion: '<S942>/Data Type Conversion6' */
13819
13820 /* Reshape: '<S972>/Reshape' incorporates:
13821 * Constant: '<S972>/Constant'
13822 */
13823 for (i = 0; i < 16; i++) {
13824 L4_MABX_B.Reshape_h[i] = L4_MABX_P.Repeating_Sequence_Stair_Out_jm[i];
13825 }
13826
13827 /* End of Reshape: '<S972>/Reshape' */
13828
13829 /* UnitDelay: '<S972>/Unit_Delay' */
13830 L4_MABX_B.Unit_Delay_es = L4_MABX_DW.Unit_Delay_DSTATE_ib;
13831
13832 /* UnitDelay: '<S973>/Unit Delay' */
13833 L4_MABX_B.UnitDelay_f = L4_MABX_DW.UnitDelay_DSTATE_mx;
13834
13835 /* Switch: '<S976>/Switch1' incorporates:
13836 * Constant: '<S973>/E'
13837 * Constant: '<S973>/IV'
13838 * Switch: '<S975>/Switch1'
13839 */
13840 if (L4_MABX_B.Unit_Delay_es) {
13841 L4_MABX_B.Switch1_d = L4_MABX_P.IV_Value_i;
13842 } else {
13843 if (L4_MABX_P.E_Value_n) {
13844 /* Sum: '<S973>/Subtract' incorporates:
13845 * Constant: '<S973>/Constant'
13846 * Switch: '<S975>/Switch1'
13847 */
13848 q0 = L4_MABX_P.Constant_Value_a0;
13849 tmp = q0 + L4_MABX_B.UnitDelay_f;
13850 if (tmp < q0) {
13851 tmp = MAX_uint32_T;
13852 }
13853
13854 L4_MABX_B.Subtract_il = tmp;
13855
13856 /* End of Sum: '<S973>/Subtract' */
13857
13858 /* Switch: '<S975>/Switch1' */
13859 L4_MABX_B.Switch1_m5 = L4_MABX_B.Subtract_il;
13860 } else {
13861 /* Switch: '<S975>/Switch1' */
13862 L4_MABX_B.Switch1_m5 = L4_MABX_B.UnitDelay_f;
13863 }
13864
13865 L4_MABX_B.Switch1_d = L4_MABX_B.Switch1_m5;
13866 }
13867
13868 /* End of Switch: '<S976>/Switch1' */
13869
13870 /* Selector: '<S972>/Selector' */
13871 L4_MABX_B.Selector_o = L4_MABX_B.Reshape_h[(int32_T)L4_MABX_B.Switch1_d - 1];
13872
13873 /* DataTypeConversion: '<S942>/Data Type Conversion1' */
13874 L4_MABX_B.DataTypeConversion1_ah = L4_MABX_B.Selector_o;
13875
13876 /* S-Function (sfix_bitop): '<S955>/Operator' */
13877 L4_MABX_B.Operator_lr = (uint8_T)(L4_MABX_B.DataTypeConversion1_ah &
13878 L4_MABX_P.Operator_BitMask_jdv);
13879
13880 /* DataTypeConversion: '<S955>/DataType' */
13881 L4_MABX_B.DataType_lx = L4_MABX_B.Operator_lr;
13882
13883 /* DataTypeConversion: '<S941>/Data Type Conversion' incorporates:
13884 * Constant: '<S941>/Priority'
13885 */
13886 L4_MABX_B.DataTypeConversion_gj = L4_MABX_P.Priority_Value_i;
13887
13888 /* ArithShift: '<S941>/Shift_Arithmetic ' */
13889 L4_MABX_B.Shift_Arithmetic_g = L4_MABX_B.DataTypeConversion_gj << 26;
13890
13891 /* DataTypeConversion: '<S941>/Data Type Conversion1' incorporates:
13892 * Constant: '<S941>/ExtendedDataPage'
13893 */
13894 L4_MABX_B.DataTypeConversion1_c2 = L4_MABX_P.ExtendedDataPage_Value_g;
13895
13896 /* ArithShift: '<S941>/Shift_Arithmetic 1' */
13897 L4_MABX_B.Shift_Arithmetic1_h = L4_MABX_B.DataTypeConversion1_c2 << 25;
13898
13899 /* DataTypeConversion: '<S941>/Data Type Conversion2' incorporates:
13900 * Constant: '<S941>/DataPage'
13901 */
13902 L4_MABX_B.DataTypeConversion2_p0 = L4_MABX_P.DataPage_Value_n;
13903
13904 /* ArithShift: '<S941>/Shift_Arithmetic 2' */
13905 L4_MABX_B.Shift_Arithmetic2_c = L4_MABX_B.DataTypeConversion2_p0 << 24;
13906
13907 /* DataTypeConversion: '<S941>/Data Type Conversion3' incorporates:
13908 * Constant: '<S941>/PDUFormat'
13909 */
13910 L4_MABX_B.DataTypeConversion3_gg = L4_MABX_P.PDUFormat_Value_n;
13911
13912 /* ArithShift: '<S941>/Shift_Arithmetic 3' */
13913 L4_MABX_B.Shift_Arithmetic3_g = L4_MABX_B.DataTypeConversion3_gg << 16;
13914
13915 /* DataTypeConversion: '<S941>/Data Type Conversion4' incorporates:
13916 * Constant: '<S941>/PDUSpecific'
13917 */
13918 L4_MABX_B.DataTypeConversion4_e5 = L4_MABX_P.PDUSpecific_Value_d;
13919
13920 /* ArithShift: '<S941>/Shift_Arithmetic 4' */
13921 L4_MABX_B.Shift_Arithmetic4_a = L4_MABX_B.DataTypeConversion4_e5 << 8;
13922
13923 /* DataTypeConversion: '<S941>/Data Type Conversion5' incorporates:
13924 * Constant: '<S941>/SourceAddress'
13925 */
13926 L4_MABX_B.DataTypeConversion5_h = L4_MABX_P.SourceAddress_Value_k;
13927
13928 /* S-Function (sfix_bitop): '<S946>/Operator' */
13929 L4_MABX_B.Operator_l = L4_MABX_B.Shift_Arithmetic_g |
13930 L4_MABX_B.Shift_Arithmetic1_h | L4_MABX_B.Shift_Arithmetic2_c |
13931 L4_MABX_B.Shift_Arithmetic3_g | L4_MABX_B.Shift_Arithmetic4_a |
13932 L4_MABX_B.DataTypeConversion5_h;
13933
13934 /* DataTypeConversion: '<S946>/DataType' */
13935 L4_MABX_B.DataType_ed = L4_MABX_B.Operator_l;
13936
13937 /* DataTypeConversion: '<S942>/Data Type Conversion3' */
13938 L4_MABX_B.DataTypeConversion3_f = L4_MABX_B.DataType_ed;
13939
13940 /* S-Function (sfix_bitop): '<S951>/Operator' */
13941 L4_MABX_B.Operator_ny = L4_MABX_B.DataTypeConversion3_f &
13942 L4_MABX_P.Operator_BitMask_ai;
13943
13944 /* DataTypeConversion: '<S951>/DataType' */
13945 tmp = L4_MABX_B.Operator_ny;
13946 if (tmp > 255U) {
13947 tmp = 255U;
13948 }
13949
13950 L4_MABX_B.DataType_pn = (uint8_T)tmp;
13951
13952 /* End of DataTypeConversion: '<S951>/DataType' */
13953
13954 /* S-Function (sfix_bitop): '<S952>/Operator' */
13955 L4_MABX_B.Operator_i = L4_MABX_B.DataTypeConversion3_f &
13956 L4_MABX_P.Operator_BitMask_om;
13957
13958 /* DataTypeConversion: '<S952>/DataType' */
13959 tmp = L4_MABX_B.Operator_i;
13960 if (tmp > 65535U) {
13961 tmp = 65535U;
13962 }
13963
13964 L4_MABX_B.DataType_hsc = (uint16_T)tmp;
13965
13966 /* End of DataTypeConversion: '<S952>/DataType' */
13967
13968 /* ArithShift: '<S942>/Shift_Arithmetic 3' */
13969 L4_MABX_B.Shift_Arithmetic3_o = (uint16_T)((uint32_T)L4_MABX_B.DataType_hsc >>
13970 8);
13971
13972 /* DataTypeConversion: '<S942>/Data Type Conversion8' */
13973 tmp_0 = L4_MABX_B.Shift_Arithmetic3_o;
13974 if (tmp_0 > 255) {
13975 tmp_0 = 255U;
13976 }
13977
13978 L4_MABX_B.DataTypeConversion8_e4 = (uint8_T)tmp_0;
13979
13980 /* End of DataTypeConversion: '<S942>/Data Type Conversion8' */
13981
13982 /* S-Function (sfix_bitop): '<S953>/Operator' */
13983 L4_MABX_B.Operator_a = L4_MABX_B.DataTypeConversion3_f &
13984 L4_MABX_P.Operator_BitMask_nn;
13985
13986 /* DataTypeConversion: '<S953>/DataType' */
13987 L4_MABX_B.DataType_bj = L4_MABX_B.Operator_a;
13988
13989 /* ArithShift: '<S942>/Shift_Arithmetic 4' */
13990 L4_MABX_B.Shift_Arithmetic4_p = L4_MABX_B.DataType_bj >> 16;
13991
13992 /* DataTypeConversion: '<S942>/Data Type Conversion9' */
13993 tmp = L4_MABX_B.Shift_Arithmetic4_p;
13994 if (tmp > 255U) {
13995 tmp = 255U;
13996 }
13997
13998 L4_MABX_B.DataTypeConversion9_b = (uint8_T)tmp;
13999
14000 /* End of DataTypeConversion: '<S942>/Data Type Conversion9' */
14001
14002 /* S-Function (sfix_bitop): '<S954>/Operator' */
14003 L4_MABX_B.Operator_iy = L4_MABX_B.DataTypeConversion3_f &
14004 L4_MABX_P.Operator_BitMask_k3;
14005
14006 /* DataTypeConversion: '<S954>/DataType' */
14007 L4_MABX_B.DataType_iuc = L4_MABX_B.Operator_iy;
14008
14009 /* ArithShift: '<S942>/Shift_Arithmetic 5' */
14010 L4_MABX_B.Shift_Arithmetic5_k = L4_MABX_B.DataType_iuc >> 24;
14011
14012 /* DataTypeConversion: '<S942>/Data Type Conversion10' */
14013 tmp = L4_MABX_B.Shift_Arithmetic5_k;
14014 if (tmp > 255U) {
14015 tmp = 255U;
14016 }
14017
14018 L4_MABX_B.DataTypeConversion10_m1 = (uint8_T)tmp;
14019
14020 /* End of DataTypeConversion: '<S942>/Data Type Conversion10' */
14021
14022 /* Sum: '<S942>/Add' incorporates:
14023 * Constant: '<S942>/Constant'
14024 * Constant: '<S942>/Constant1'
14025 */
14026 L4_MABX_B.Add_b = (uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)
14027 (uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)
14028 ((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)
14029 (uint8_T)((uint32_T)L4_MABX_B.DataTypeConversion_kg + L4_MABX_B.DataType_ov)
14030 + L4_MABX_B.DataTypeConversion4_pt) + L4_MABX_B.DataTypeConversion5_mt) +
14031 L4_MABX_B.DataTypeConversion6_pe) + L4_MABX_P.Constant_Value_ko) +
14032 L4_MABX_P.Constant1_Value_d) + L4_MABX_B.DataType_pn) +
14033 L4_MABX_B.DataTypeConversion8_e4) +
14034 L4_MABX_B.DataTypeConversion9_b) + L4_MABX_B.DataTypeConversion10_m1) +
14035 L4_MABX_B.DataType_lx);
14036
14037 /* ArithShift: '<S942>/Shift_Arithmetic 6' */
14038 L4_MABX_B.Shift_Arithmetic6_g = (uint8_T)((uint32_T)L4_MABX_B.Add_b >> 4);
14039
14040 /* Sum: '<S942>/Add1' */
14041 L4_MABX_B.Add1_gk = (uint8_T)((uint32_T)L4_MABX_B.Shift_Arithmetic6_g +
14042 L4_MABX_B.Add_b);
14043
14044 /* S-Function (sfix_bitop): '<S956>/Operator' */
14045 L4_MABX_B.Operator_do3 = (uint8_T)(L4_MABX_B.Add1_gk &
14046 L4_MABX_P.Operator_BitMask_is);
14047
14048 /* DataTypeConversion: '<S956>/DataType' */
14049 L4_MABX_B.DataType_gr = L4_MABX_B.Operator_do3;
14050
14051 /* ArithShift: '<S942>/Shift_Arithmetic 7' */
14052 L4_MABX_B.Shift_Arithmetic7_c = (uint8_T)(L4_MABX_B.DataType_gr << 4);
14053
14054 /* S-Function (sfix_bitop): '<S957>/Operator' */
14055 L4_MABX_B.Operator_ei = (uint8_T)(L4_MABX_B.DataType_lx |
14056 L4_MABX_B.Shift_Arithmetic7_c);
14057
14058 /* DataTypeConversion: '<S957>/DataType' */
14059 L4_MABX_B.DataType_f3x = L4_MABX_B.Operator_ei;
14060
14061 /* DataTypeConversion: '<S908>/Data Type Conversion1' incorporates:
14062 * Constant: '<S942>/Constant'
14063 * Constant: '<S942>/Constant1'
14064 */
14065 L4_MABX_B.DataTypeConversion1_mm[0] = L4_MABX_B.DataTypeConversion_kg;
14066 L4_MABX_B.DataTypeConversion1_mm[1] = L4_MABX_B.DataType_ov;
14067 L4_MABX_B.DataTypeConversion1_mm[2] = L4_MABX_B.DataTypeConversion4_pt;
14068 L4_MABX_B.DataTypeConversion1_mm[3] = L4_MABX_B.DataTypeConversion5_mt;
14069 L4_MABX_B.DataTypeConversion1_mm[4] = L4_MABX_B.DataTypeConversion6_pe;
14070 L4_MABX_B.DataTypeConversion1_mm[5] = L4_MABX_P.Constant_Value_ko;
14071 L4_MABX_B.DataTypeConversion1_mm[6] = L4_MABX_P.Constant1_Value_d;
14072 L4_MABX_B.DataTypeConversion1_mm[7] = L4_MABX_B.DataType_f3x;
14073
14074 /* Outputs for Enabled SubSystem: '<S929>/PropB_REAX_1_E4' incorporates:
14075 * EnablePort: '<S931>/Enable'
14076 */
14077 if (L4_MABX_B.Operator_md) {
14078 /* S-Function (rti_commonblock): '<S931>/S-Function1' incorporates:
14079 * Constant: '<S929>/Constant'
14080 * Constant: '<S929>/Constant1'
14081 */
14082 /* This comment workarounds a code generation problem */
14083
14084 /* dSPACE RTICAN TX Message Block: "PropB_REAX_1_E4" Id:419426276 */
14085 {
14086 static UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
14087 0x00 };
14088
14089 Float32 delayTime = 0.0;
14090
14091 /* link this pointer to CAN_Msg for use in initialize_io_units() */
14092 CANTP1_PTR_M1_C2_XTD_0x18FFEFE4 = &(CAN_Msg[0]);
14093
14094 /* ... perform loop-back if required */
14095 if (L4_MABX_P.Constant1_Value_h > 0.5) {
14096 /* ... updating the used tx-clientbuffer */
14097 can_tp1_msg_update_all( CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->module,
14098 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->queue );
14099
14100 /* ... Read status and timestamp info perform loop-back (previous message) */
14101 can_tp1_tx_msg_read_loopback(CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4,
14102 8, // datalen
14103 &(CAN_Msg[0]),
14104 CANTP1_RX_SPMSG_M1_C2_XTD);
14105
14106 /* Convert timestamp */
14107 if (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->processed) {
14108 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->timestamp =
14109 rtk_dsts_time_to_simtime_convert
14110 (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->timestamp);
14111 }
14112 } else {
14113 /* ... Read status and timestamp info (previous message) */
14114 can_tp1_msg_read_from_dsmcr(CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4);
14115
14116 /* Convert timestamp */
14117 if (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->processed) {
14118 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->timestamp =
14119 rtk_dsts_time_to_simtime_convert
14120 (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->timestamp);
14121 }
14122 }
14123
14124 /* Messages with timestamp zero have been received in pause/stop state
14125 and must not be handled.
14126 */
14127 if (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->timestamp > 0.0) {
14128 L4_MABX_B.SFunction1_o1_b2 = (real_T)
14129 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->processed;
14130 L4_MABX_B.SFunction1_o2_d = (real_T)
14131 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->timestamp;
14132 L4_MABX_B.SFunction1_o3_gd = (real_T)
14133 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->deltatime;
14134 L4_MABX_B.SFunction1_o4_bi = (real_T)
14135 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->delaytime;
14136 }
14137
14138 /* ... Encode Simulink signals of TX and RM blocks*/
14139 {
14140 rtican_Signal_t CAN_Sgn;
14141 UInt32 i;
14142
14143 /* Initialize the static message data to zero */
14144 for (i=0; i<8; i++ )
14145 CAN_Msg[i] = 0;
14146
14147 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
14148 /* Add or substract 0.5 in order to round to nearest integer */
14149 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_mm[0] )
14150 + 0.5);
14151 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14152 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
14153
14154 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
14155 /* Add or substract 0.5 in order to round to nearest integer */
14156 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_mm[1] )
14157 + 0.5);
14158 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14159 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
14160
14161 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
14162 /* Add or substract 0.5 in order to round to nearest integer */
14163 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_mm[2] )
14164 + 0.5);
14165 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14166 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
14167
14168 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
14169 /* Add or substract 0.5 in order to round to nearest integer */
14170 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_mm[3] )
14171 + 0.5);
14172 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14173 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
14174
14175 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
14176 /* Add or substract 0.5 in order to round to nearest integer */
14177 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_mm[4] )
14178 + 0.5);
14179 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14180 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
14181
14182 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
14183 /* Add or substract 0.5 in order to round to nearest integer */
14184 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_mm[5] )
14185 + 0.5);
14186 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14187 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
14188
14189 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
14190 /* Add or substract 0.5 in order to round to nearest integer */
14191 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_mm[6] )
14192 + 0.5);
14193 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14194 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
14195
14196 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
14197 /* Add or substract 0.5 in order to round to nearest integer */
14198 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_mm[7] )
14199 + 0.5);
14200 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14201 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
14202 }
14203
14204 delayTime = (Float32) L4_MABX_P.Constant_Value_k1 / (1700);
14205
14206 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
14207 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FFEFE4], 8,
14208 &(CAN_Msg[0]), delayTime);
14209 }
14210 }
14211
14212 /* End of Outputs for SubSystem: '<S929>/PropB_REAX_1_E4' */
14213
14214 /* Outputs for Enabled SubSystem: '<S930>/PropB_REAX_1_E4' incorporates:
14215 * EnablePort: '<S932>/Enable'
14216 */
14217 if (L4_MABX_B.EnablePropB_ReAX_CAN6) {
14218 /* S-Function (rti_commonblock): '<S932>/S-Function1' incorporates:
14219 * Constant: '<S930>/Constant'
14220 * Constant: '<S930>/Constant1'
14221 */
14222 /* This comment workarounds a code generation problem */
14223
14224 /* dSPACE RTICAN TX Message Block: "PropB_REAX_1_E4" Id:419426276 */
14225 {
14226 static UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
14227 0x00 };
14228
14229 Float32 delayTime = 0.0;
14230
14231 /* link this pointer to CAN_Msg for use in initialize_io_units() */
14232 CANTP1_PTR_M3_C2_XTD_0x18FFEFE4 = &(CAN_Msg[0]);
14233
14234 /* ... perform loop-back if required */
14235 if (L4_MABX_P.Constant1_Value_lw > 0.5) {
14236 /* ... updating the used tx-clientbuffer */
14237 can_tp1_msg_update_all( CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->module,
14238 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->queue );
14239
14240 /* ... Read status and timestamp info perform loop-back (previous message) */
14241 can_tp1_tx_msg_read_loopback(CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4,
14242 8, // datalen
14243 &(CAN_Msg[0]),
14244 CANTP1_RX_SPMSG_M3_C2_XTD);
14245
14246 /* Convert timestamp */
14247 if (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->processed) {
14248 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->timestamp =
14249 rtk_dsts_time_to_simtime_convert
14250 (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->timestamp);
14251 }
14252 } else {
14253 /* ... Read status and timestamp info (previous message) */
14254 can_tp1_msg_read_from_dsmcr(CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4);
14255
14256 /* Convert timestamp */
14257 if (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->processed) {
14258 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->timestamp =
14259 rtk_dsts_time_to_simtime_convert
14260 (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->timestamp);
14261 }
14262 }
14263
14264 /* Messages with timestamp zero have been received in pause/stop state
14265 and must not be handled.
14266 */
14267 if (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->timestamp > 0.0) {
14268 L4_MABX_B.SFunction1_o1_n = (real_T)
14269 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->processed;
14270 L4_MABX_B.SFunction1_o2_mu = (real_T)
14271 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->timestamp;
14272 L4_MABX_B.SFunction1_o3_nm = (real_T)
14273 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->deltatime;
14274 L4_MABX_B.SFunction1_o4_g = (real_T)
14275 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->delaytime;
14276 }
14277
14278 /* ... Encode Simulink signals of TX and RM blocks*/
14279 {
14280 rtican_Signal_t CAN_Sgn;
14281 UInt32 i;
14282
14283 /* Initialize the static message data to zero */
14284 for (i=0; i<8; i++ )
14285 CAN_Msg[i] = 0;
14286
14287 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
14288 /* Add or substract 0.5 in order to round to nearest integer */
14289 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_mm[0] )
14290 + 0.5);
14291 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14292 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
14293
14294 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
14295 /* Add or substract 0.5 in order to round to nearest integer */
14296 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_mm[1] )
14297 + 0.5);
14298 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14299 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
14300
14301 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
14302 /* Add or substract 0.5 in order to round to nearest integer */
14303 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_mm[2] )
14304 + 0.5);
14305 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14306 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
14307
14308 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
14309 /* Add or substract 0.5 in order to round to nearest integer */
14310 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_mm[3] )
14311 + 0.5);
14312 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14313 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
14314
14315 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
14316 /* Add or substract 0.5 in order to round to nearest integer */
14317 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_mm[4] )
14318 + 0.5);
14319 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14320 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
14321
14322 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
14323 /* Add or substract 0.5 in order to round to nearest integer */
14324 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_mm[5] )
14325 + 0.5);
14326 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14327 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
14328
14329 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
14330 /* Add or substract 0.5 in order to round to nearest integer */
14331 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_mm[6] )
14332 + 0.5);
14333 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14334 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
14335
14336 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
14337 /* Add or substract 0.5 in order to round to nearest integer */
14338 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_mm[7] )
14339 + 0.5);
14340 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14341 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
14342 }
14343
14344 delayTime = (Float32) L4_MABX_P.Constant_Value_j / (1700);
14345
14346 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
14347 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0X18FFEFE4], 8,
14348 &(CAN_Msg[0]), delayTime);
14349 }
14350 }
14351
14352 /* End of Outputs for SubSystem: '<S930>/PropB_REAX_1_E4' */
14353
14354 /* DataTypeConversion: '<S909>/Data Type Conversion' incorporates:
14355 * Constant: '<S820>/CANT_VDC2_0B_CHANNEL_APV'
14356 */
14357 L4_MABX_B.DataTypeConversion_fn = (uint8_T)
14358 L4_MABX_P.CANT_VDC2_0B_CHANNEL_APV_Value;
14359
14360 /* S-Function (sfix_bitop): '<S937>/Operator' */
14361 L4_MABX_B.Operator_px = (uint8_T)(L4_MABX_B.DataTypeConversion_fn &
14362 L4_MABX_P.Operator_BitMask_i1);
14363
14364 /* DataTypeConversion: '<S937>/DataType' */
14365 L4_MABX_B.DataType_fv = L4_MABX_B.Operator_px;
14366
14367 /* ArithShift: '<S909>/Shift_Arithmetic 3' */
14368 L4_MABX_B.Shift_Arithmetic3_l = ldexp(L4_MABX_B.DataType_fv, (-4));
14369
14370 /* DataTypeConversion: '<S909>/Data Type Conversion6' */
14371 L4_MABX_B.DataTypeConversion6_g2 = (L4_MABX_B.Shift_Arithmetic3_l != 0.0);
14372
14373 /* Outputs for Enabled SubSystem: '<S939>/VDC2_0B' incorporates:
14374 * EnablePort: '<S940>/Enable'
14375 */
14376 if (L4_MABX_B.DataTypeConversion6_g2) {
14377 /* S-Function (rti_commonblock): '<S940>/S-Function1' */
14378 /* This comment workarounds a code generation problem */
14379
14380 /* dSPACE RTICAN TX Message Block: "VDC2_0B" Id:418384139 */
14381 {
14382 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
14383
14384 Float32 delayTime = 0.0;
14385
14386 /* ... Read status and timestamp info (previous message) */
14387 can_tp1_msg_read(can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]);
14388
14389 /* Convert timestamp */
14390 if (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->processed) {
14391 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->timestamp =
14392 rtk_dsts_time_to_simtime_convert
14393 (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->timestamp);
14394 }
14395
14396 /* Messages with timestamp zero have been received in pause/stop state
14397 and must not be handled.
14398 */
14399 if (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->timestamp > 0.0) {
14400 L4_MABX_B.SFunction1_o1_k = (real_T)
14401 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->processed;
14402 L4_MABX_B.SFunction1_o2_a = (real_T)
14403 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->timestamp;
14404 L4_MABX_B.SFunction1_o3_n2 = (real_T)
14405 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->deltatime;
14406 L4_MABX_B.SFunction1_o4_d = (real_T)
14407 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->delaytime;
14408 }
14409
14410 /* ... Encode Simulink signals of TX and RM blocks*/
14411 {
14412 rtican_Signal_t CAN_Sgn;
14413
14414 /* ...... "SteerWheelAngle" (0|16, standard signal, unsigned int, little endian) */
14415 /* Add or substract 0.5 in order to round to nearest integer */
14416 CAN_Sgn.UnsignedSgn = (UInt32) (( SteerWheelAngle - ( -31.374 ) ) /
14417 0.0009765625 + 0.5);
14418 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
14419 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
14420 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte1;
14421
14422 /* ...... "SteerWheelTurnCounter" (16|6, standard signal, unsigned int, little endian) */
14423 /* Add or substract 0.5 in order to round to nearest integer */
14424 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.SFunction1_o2_n - ( -32 ) +
14425 0.5);
14426 CAN_Sgn.UnsignedSgn &= 0x0000003F;
14427 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
14428
14429 /* ...... "SteerWheelAngleSensorType" (22|2, standard signal, unsigned int, little endian) */
14430 /* Add or substract 0.5 in order to round to nearest integer */
14431 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SFunction1_o3_kg ) + 0.5);
14432 CAN_Sgn.UnsignedSgn &= 0x00000003;
14433 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
14434 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
14435
14436 /* ...... "YawRate" (24|16, standard signal, unsigned int, little endian) */
14437 /* Add or substract 0.5 in order to round to nearest integer */
14438 CAN_Sgn.UnsignedSgn = (UInt32) (( YawRate - ( -3.92 ) ) /
14439 0.0001220703125 + 0.5);
14440 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
14441 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
14442 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte1;
14443
14444 /* ...... "LateralAcceleration" (40|16, standard signal, unsigned int, little endian) */
14445 /* Add or substract 0.5 in order to round to nearest integer */
14446 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SFunction1_o5_j - ( -15.687 )
14447 ) / 0.00048828125 + 0.5);
14448 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
14449 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
14450 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte1;
14451
14452 /* ...... "LongitudinalAcceleration" (56|8, standard signal, unsigned int, little endian) */
14453 /* Add or substract 0.5 in order to round to nearest integer */
14454 CAN_Sgn.UnsignedSgn = (UInt32) (( SPN1810_LongitudinalAcceleration -
14455 ( -12.5 ) ) / 0.1 + 0.5);
14456 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14457 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
14458 }
14459
14460 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
14461 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B], 8,
14462 &(CAN_Msg[0]), delayTime);
14463 }
14464 }
14465
14466 /* End of Outputs for SubSystem: '<S939>/VDC2_0B' */
14467
14468 /* S-Function (sfix_bitop): '<S933>/Operator' */
14469 L4_MABX_B.Operator_mz = (uint8_T)(L4_MABX_B.DataTypeConversion_fn &
14470 L4_MABX_P.Operator_BitMask_mq);
14471
14472 /* DataTypeConversion: '<S933>/DataType' */
14473 L4_MABX_B.DataType_m2 = L4_MABX_B.Operator_mz;
14474
14475 /* S-Function (sfix_bitop): '<S934>/Operator' */
14476 L4_MABX_B.Operator_hg = (uint8_T)(L4_MABX_B.DataTypeConversion_fn &
14477 L4_MABX_P.Operator_BitMask_c);
14478
14479 /* DataTypeConversion: '<S934>/DataType' */
14480 L4_MABX_B.DataType_a1 = L4_MABX_B.Operator_hg;
14481
14482 /* S-Function (sfix_bitop): '<S935>/Operator' */
14483 L4_MABX_B.Operator_c5 = (uint8_T)(L4_MABX_B.DataTypeConversion_fn &
14484 L4_MABX_P.Operator_BitMask_m1);
14485
14486 /* DataTypeConversion: '<S935>/DataType' */
14487 L4_MABX_B.DataType_pg = L4_MABX_B.Operator_c5;
14488
14489 /* S-Function (sfix_bitop): '<S936>/Operator' */
14490 L4_MABX_B.Operator_pr = (uint8_T)(L4_MABX_B.DataTypeConversion_fn &
14491 L4_MABX_P.Operator_BitMask_jv);
14492
14493 /* DataTypeConversion: '<S936>/DataType' */
14494 L4_MABX_B.DataType_fz = L4_MABX_B.Operator_pr;
14495
14496 /* S-Function (sfix_bitop): '<S938>/Operator' */
14497 L4_MABX_B.Operator_pu = (uint8_T)(L4_MABX_B.DataTypeConversion_fn &
14498 L4_MABX_P.Operator_BitMask_hx);
14499
14500 /* DataTypeConversion: '<S938>/DataType' */
14501 L4_MABX_B.DataType_h2 = L4_MABX_B.Operator_pu;
14502
14503 /* DataTypeConversion: '<S909>/Data Type Conversion1' */
14504 L4_MABX_B.DataTypeConversion1_fz = (L4_MABX_B.DataType_m2 != 0);
14505
14506 /* ArithShift: '<S909>/Shift_Arithmetic ' */
14507 L4_MABX_B.Shift_Arithmetic_os = ldexp(L4_MABX_B.DataType_a1, (-1));
14508
14509 /* DataTypeConversion: '<S909>/Data Type Conversion3' */
14510 L4_MABX_B.DataTypeConversion3_mm = (L4_MABX_B.Shift_Arithmetic_os != 0.0);
14511
14512 /* ArithShift: '<S909>/Shift_Arithmetic 1' */
14513 L4_MABX_B.Shift_Arithmetic1_p = ldexp(L4_MABX_B.DataType_pg, (-2));
14514
14515 /* DataTypeConversion: '<S909>/Data Type Conversion4' */
14516 L4_MABX_B.DataTypeConversion4_pw = (L4_MABX_B.Shift_Arithmetic1_p != 0.0);
14517
14518 /* ArithShift: '<S909>/Shift_Arithmetic 2' */
14519 L4_MABX_B.Shift_Arithmetic2_o = ldexp(L4_MABX_B.DataType_fz, (-3));
14520
14521 /* DataTypeConversion: '<S909>/Data Type Conversion5' */
14522 L4_MABX_B.DataTypeConversion5_ev = (L4_MABX_B.Shift_Arithmetic2_o != 0.0);
14523
14524 /* ArithShift: '<S909>/Shift_Arithmetic 4' */
14525 L4_MABX_B.Shift_Arithmetic4_ko = ldexp(L4_MABX_B.DataType_h2, (-5));
14526
14527 /* DataTypeConversion: '<S909>/Data Type Conversion7' */
14528 L4_MABX_B.DataTypeConversion7_mn = (L4_MABX_B.Shift_Arithmetic4_ko != 0.0);
14529
14530 /* Logic: '<S970>/Logical Operator1' */
14531 L4_MABX_B.LogicalOperator1_n = !L4_MABX_B.Operator_MX;
14532
14533 /* Logic: '<S970>/Logical Operator' */
14534 L4_MABX_B.LogicalOperator_o = (L4_MABX_B.LogicalOperator1_n &&
14535 L4_MABX_B.Operator_MN);
14536
14537 /* RelationalOperator: '<S974>/Operator' */
14538 L4_MABX_B.Operator_be = (L4_MABX_B.Switch1_d == L4_MABX_B.Width_c);
14539
14540 /* End of Outputs for SubSystem: '<S815>/CAN_TX_10ms' */
14541
14542 /* Outputs for Atomic SubSystem: '<S815>/CAN_TX_20ms' */
14543
14544 /* RateTransition: '<S981>/TmpRTBAtDivide1Inport1' */
14545 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
14546 L4_MABX_B.BrakingPID_Y_m = L4_MABX_B.BrakingPID_Y_k;
14547 L4_MABX_B.AutonomousOutputEnabled_f = AutonomousOutputEnabled;
14548 L4_MABX_B.BrakingControlActive_c = L4_MABX_B.F_Brake_control_active;
14549 L4_MABX_B.TmpRTBAtLogicalOperator8Inport1 = AutonomousOutputEnabled;
14550 L4_MABX_B.TmpRTBAtLogicalOperator1Inport2 = AutonomousOutputEnabled;
14551 L4_MABX_B.TmpRTBAtUnit_DelayInport1 = AutonomousOutputEnabled;
14552 L4_MABX_B.BrakingPID_Y_md = L4_MABX_B.BrakingPID_Y_k;
14553 L4_MABX_B.FrontAxleSpeed_d = L4_MABX_B.SFunction1_o1_os;
14554 L4_MABX_B.SPN1807_SteeringWheelAngle_m = SteerWheelAngle;
14555 L4_MABX_B.SPN1808_YawRate_j = YawRate;
14556 L4_MABX_B.SPN1810_LongitudinalAccelerat_f = SPN1810_LongitudinalAcceleration;
14557 }
14558
14559 /* End of Outputs for SubSystem: '<S815>/CAN_TX_20ms' */
14560
14561 /* Outputs for Atomic SubSystem: '<S815>/CAN_TX_5000ms' */
14562
14563 /* RateTransition: '<S1010>/TmpRTBAtOperatorInport2' */
14564 if (L4_MABX_M->Timing.RateInteraction.TID0_7 == 1) {
14565 L4_MABX_B.TmpRTBAtOperatorInport2 = AutonomousOutputEnabled;
14566 }
14567
14568 /* End of RateTransition: '<S1010>/TmpRTBAtOperatorInport2' */
14569
14570 /* End of Outputs for SubSystem: '<S815>/CAN_TX_5000ms' */
14571
14572 /* Outputs for Enabled SubSystem: '<S626>/TC1_03_05' incorporates:
14573 * EnablePort: '<S627>/Enable'
14574 */
14575 /* Constant: '<S441>/Constant' */
14576 if (L4_MABX_P.Constant_Value_bb) {
14577 /* S-Function (rti_commonblock): '<S627>/S-Function1' */
14578 /* This comment workarounds a code generation problem */
14579
14580 /* dSPACE RTICAN RX Message Block: "TC1_03_05" Id:201392901 */
14581 {
14582 UInt32 *CAN_Msg;
14583 static dsfloat time_old = 0.0;
14584
14585 /* Read status and timestamp info (previous message) */
14586 if (can_type1_M3_C1_XTD[CANTP1_M3_C1_RXSRVC_XTD_0xC010305].timestamp !=
14587 time_old) {
14588 /* ... save timestamp info for the calculation of the RX status
14589 during the consecutive sample hit*/
14590 time_old = can_type1_M3_C1_XTD[CANTP1_M3_C1_RXSRVC_XTD_0xC010305].
14591 timestamp;
14592
14593 /* ... set the processed flag to one */
14594 L4_MABX_B.SFunction1_o26 = 1.0;
14595 L4_MABX_B.SFunction1_o27 = (real_T)
14596 can_type1_M3_C1_XTD[CANTP1_M3_C1_RXSRVC_XTD_0xC010305].timestamp;
14597 L4_MABX_B.SFunction1_o28 = (real_T)
14598 can_type1_M3_C1_XTD[CANTP1_M3_C1_RXSRVC_XTD_0xC010305].deltatime;
14599 CAN_Msg = can_type1_M3_C1_XTD[CANTP1_M3_C1_RXSRVC_XTD_0xC010305].data;
14600
14601 /* Decode CAN message */
14602 {
14603 {
14604 rtican_Signal_t CAN_Sgn;
14605
14606 /* ...... "SPN681_TransGearShiftInhibitReq" (0|2, standard signal, unsigned int, little endian) */
14607 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
14608 CAN_Sgn.UnsignedSgn &= 0x00000003;
14609 L4_MABX_B.SFunction1_o1_pj = ((real_T) CAN_Sgn.UnsignedSgn);
14610
14611 /* ...... "SPN682_TransTrqConvLockupDisReq" (2|2, standard signal, unsigned int, little endian) */
14612 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
14613 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
14614 CAN_Sgn.UnsignedSgn &= 0x00000003;
14615 L4_MABX_B.SFunction1_o2_ol = ((real_T) CAN_Sgn.UnsignedSgn);
14616
14617 /* ...... "SPN683_DisengageDrivelineReq" (4|2, standard signal, unsigned int, little endian) */
14618 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
14619 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
14620 CAN_Sgn.UnsignedSgn &= 0x00000003;
14621 L4_MABX_B.SFunction1_o3_ph = ((real_T) CAN_Sgn.UnsignedSgn);
14622
14623 /* ...... "SPN4242_TransRevGearShiftInhibRq" (6|2, standard signal, unsigned int, little endian) */
14624 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
14625 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
14626 CAN_Sgn.UnsignedSgn &= 0x00000003;
14627 L4_MABX_B.SFunction1_o4_n = ((real_T) CAN_Sgn.UnsignedSgn);
14628
14629 /* ...... "SPN684_RequestedPercClutchSlip" (8|8, standard signal, unsigned int, little endian) */
14630 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
14631 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14632 L4_MABX_B.SFunction1_o5_g = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
14633
14634 /* ...... "SPN525_TransRequestedGear" (16|8, standard signal, unsigned int, little endian) */
14635 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
14636 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14637 L4_MABX_B.SFunction1_o6_nu = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
14638 );
14639
14640 /* ...... "SPN685_DisengageDiffLockRqFrAx1" (24|2, standard signal, unsigned int, little endian) */
14641 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
14642 CAN_Sgn.UnsignedSgn &= 0x00000003;
14643 L4_MABX_B.SFunction1_o7_e = ((real_T) CAN_Sgn.UnsignedSgn);
14644
14645 /* ...... "SPN686_DisengageDiffLockRqFrAx2" (26|2, standard signal, unsigned int, little endian) */
14646 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
14647 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
14648 CAN_Sgn.UnsignedSgn &= 0x00000003;
14649 L4_MABX_B.SFunction1_o8_j = ((real_T) CAN_Sgn.UnsignedSgn);
14650
14651 /* ...... "SPN687_DisengageDiffLockRqRrAx1" (28|2, standard signal, unsigned int, little endian) */
14652 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
14653 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
14654 CAN_Sgn.UnsignedSgn &= 0x00000003;
14655 L4_MABX_B.SFunction1_o9_j = ((real_T) CAN_Sgn.UnsignedSgn);
14656
14657 /* ...... "SPN688_DisengageDiffLockRqRrAx2" (30|2, standard signal, unsigned int, little endian) */
14658 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
14659 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
14660 CAN_Sgn.UnsignedSgn &= 0x00000003;
14661 L4_MABX_B.SFunction1_o10_i = ((real_T) CAN_Sgn.UnsignedSgn);
14662
14663 /* ...... "SPN689_DisengageDiffLockRqC" (32|2, standard signal, unsigned int, little endian) */
14664 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
14665 CAN_Sgn.UnsignedSgn &= 0x00000003;
14666 L4_MABX_B.SFunction1_o11 = ((real_T) CAN_Sgn.UnsignedSgn);
14667
14668 /* ...... "SPN690_DisengageDiffLockRqCF" (34|2, standard signal, unsigned int, little endian) */
14669 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
14670 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
14671 CAN_Sgn.UnsignedSgn &= 0x00000003;
14672 L4_MABX_B.SFunction1_o12 = ((real_T) CAN_Sgn.UnsignedSgn);
14673
14674 /* ...... "SPN691_DisengageDiffLockRqCR" (36|2, standard signal, unsigned int, little endian) */
14675 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
14676 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
14677 CAN_Sgn.UnsignedSgn &= 0x00000003;
14678 L4_MABX_B.SFunction1_o13 = ((real_T) CAN_Sgn.UnsignedSgn);
14679
14680 /* ...... "SPN5762_TransLoadRedInhibitRq" (38|2, standard signal, unsigned int, little endian) */
14681 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
14682 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
14683 CAN_Sgn.UnsignedSgn &= 0x00000003;
14684 L4_MABX_B.SFunction1_o14 = ((real_T) CAN_Sgn.UnsignedSgn);
14685
14686 /* ...... "SPN1852_TransmissionMode1" (40|2, standard signal, unsigned int, little endian) */
14687 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
14688 CAN_Sgn.UnsignedSgn &= 0x00000003;
14689 L4_MABX_B.SFunction1_o15 = ((real_T) CAN_Sgn.UnsignedSgn);
14690
14691 /* ...... "SPN1853_TransmissionMode2" (42|2, standard signal, unsigned int, little endian) */
14692 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
14693 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
14694 CAN_Sgn.UnsignedSgn &= 0x00000003;
14695 L4_MABX_B.SFunction1_o16 = ((real_T) CAN_Sgn.UnsignedSgn);
14696
14697 /* ...... "SPN1854_TransmissionMode3" (44|2, standard signal, unsigned int, little endian) */
14698 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
14699 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
14700 CAN_Sgn.UnsignedSgn &= 0x00000003;
14701 L4_MABX_B.SFunction1_o17 = ((real_T) CAN_Sgn.UnsignedSgn);
14702
14703 /* ...... "SPN1855_TransmissionMode4" (46|2, standard signal, unsigned int, little endian) */
14704 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
14705 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
14706 CAN_Sgn.UnsignedSgn &= 0x00000003;
14707 L4_MABX_B.SFunction1_o18 = ((real_T) CAN_Sgn.UnsignedSgn);
14708
14709 /* ...... "SPN7695_TransAutoNeutralRequest" (48|2, standard signal, unsigned int, little endian) */
14710 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
14711 CAN_Sgn.UnsignedSgn &= 0x00000003;
14712 L4_MABX_B.SFunction1_o19 = ((real_T) CAN_Sgn.UnsignedSgn);
14713
14714 /* ...... "SPN4255_TransRequestedLaunchGear" (50|4, standard signal, unsigned int, little endian) */
14715 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
14716 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
14717 CAN_Sgn.UnsignedSgn &= 0x0000000F;
14718 L4_MABX_B.SFunction1_o20 = ((real_T) CAN_Sgn.UnsignedSgn);
14719
14720 /* ...... "SPN2985_TransShiftSelDispModeSw" (54|2, standard signal, unsigned int, little endian) */
14721 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
14722 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
14723 CAN_Sgn.UnsignedSgn &= 0x00000003;
14724 L4_MABX_B.SFunction1_o21 = ((real_T) CAN_Sgn.UnsignedSgn);
14725
14726 /* ...... "SPN4246_TransmissionMode5" (56|2, standard signal, unsigned int, little endian) */
14727 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
14728 CAN_Sgn.UnsignedSgn &= 0x00000003;
14729 L4_MABX_B.SFunction1_o22 = ((real_T) CAN_Sgn.UnsignedSgn);
14730
14731 /* ...... "SPN4247_TransmissionMode6" (58|2, standard signal, unsigned int, little endian) */
14732 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
14733 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
14734 CAN_Sgn.UnsignedSgn &= 0x00000003;
14735 L4_MABX_B.SFunction1_o23 = ((real_T) CAN_Sgn.UnsignedSgn);
14736
14737 /* ...... "SPN4248_TransmissionMode7" (60|2, standard signal, unsigned int, little endian) */
14738 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
14739 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
14740 CAN_Sgn.UnsignedSgn &= 0x00000003;
14741 L4_MABX_B.SFunction1_o24 = ((real_T) CAN_Sgn.UnsignedSgn);
14742
14743 /* ...... "SPN4249_TransmissionMode8" (62|2, standard signal, unsigned int, little endian) */
14744 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
14745 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
14746 CAN_Sgn.UnsignedSgn &= 0x00000003;
14747 L4_MABX_B.SFunction1_o25 = ((real_T) CAN_Sgn.UnsignedSgn);
14748 }
14749 }
14750 } else {
14751 /* set RX status to 0 because no new message has arrived */
14752 L4_MABX_B.SFunction1_o26 = 0.0;
14753 }
14754 }
14755 }
14756
14757 /* End of Constant: '<S441>/Constant' */
14758 /* End of Outputs for SubSystem: '<S626>/TC1_03_05' */
14759
14760 /* Outputs for Atomic SubSystem: '<S815>/CAN_TX_50ms' */
14761
14762 /* RateTransition: '<S1020>/TmpRTBAtCCVS1_E3Inport1' */
14763 if (L4_MABX_M->Timing.RateInteraction.TID0_2 == 1) {
14764 L4_MABX_B.TwoSpeedAxleSwitch = L4_MABX_B.SFunction1_o1_lf;
14765 L4_MABX_B.ParkingBrakeSwitch = L4_MABX_B.SFunction1_o2_no;
14766 L4_MABX_B.CruiseCtrlPauseSwitch = L4_MABX_B.SFunction1_o3_m1;
14767 L4_MABX_B.ParkBrakeReleaseInhibitRq = L4_MABX_B.SFunction1_o4_gw;
14768 L4_MABX_B.WheelBasedVehicleSpeed_n = WheelBasedVehicleSpeed;
14769 L4_MABX_B.CruiseCtrlActive = L4_MABX_B.SFunction1_o6_jk;
14770 L4_MABX_B.CruiseCtrlEnableSwitch_c = L4_MABX_B.SFunction1_o7_l1;
14771 L4_MABX_B.BrakeSwitch_m = BrakeSwitch;
14772 L4_MABX_B.ClutchSwitch = L4_MABX_B.SFunction1_o9_hq;
14773 L4_MABX_B.CruiseCtrlSetSwitch = L4_MABX_B.SFunction1_o10_h;
14774 L4_MABX_B.CruiseCtrlCoastSwitch = L4_MABX_B.SFunction1_o11_gb;
14775 L4_MABX_B.CruiseCtrlResumeSwitch = L4_MABX_B.SFunction1_o12_j;
14776 L4_MABX_B.CruiseCtrlAccelerateSwitch = L4_MABX_B.SFunction1_o13_hl;
14777 L4_MABX_B.CruiseCtrlSetSpeed = L4_MABX_B.SFunction1_o14_he;
14778 L4_MABX_B.PTOGovernorState = L4_MABX_B.SFunction1_o15_d;
14779 L4_MABX_B.CruiseCtrlStates = L4_MABX_B.SFunction1_o16_e;
14780 L4_MABX_B.EngIdleIncrementSwitch = L4_MABX_B.SFunction1_o17_o;
14781 L4_MABX_B.EngIdleDecrementSwitch = L4_MABX_B.SFunction1_o18_d;
14782 L4_MABX_B.EngTestModeSwitch = L4_MABX_B.SFunction1_o19_e;
14783 L4_MABX_B.EngShutdownOverrideSwitch = L4_MABX_B.SFunction1_o20_p;
14784 L4_MABX_B.SPN681_TransGearShiftInhibitReq = L4_MABX_B.SFunction1_o1_pj;
14785 L4_MABX_B.SPN682_TransTrqConvLockupDisReq = L4_MABX_B.SFunction1_o2_ol;
14786 L4_MABX_B.SPN683_DisengageDrivelineReq = L4_MABX_B.SFunction1_o3_ph;
14787 L4_MABX_B.SPN4242_TransRevGearShiftInhibR = L4_MABX_B.SFunction1_o4_n;
14788 L4_MABX_B.SPN684_RequestedPercClutchSlip = L4_MABX_B.SFunction1_o5_g;
14789 L4_MABX_B.SPN525_TransRequestedGear = L4_MABX_B.SFunction1_o6_nu;
14790 L4_MABX_B.SPN685_DisengageDiffLockRqFrAx1 = L4_MABX_B.SFunction1_o7_e;
14791 L4_MABX_B.SPN686_DisengageDiffLockRqFrAx2 = L4_MABX_B.SFunction1_o8_j;
14792 L4_MABX_B.SPN687_DisengageDiffLockRqRrAx1 = L4_MABX_B.SFunction1_o9_j;
14793 L4_MABX_B.SPN688_DisengageDiffLockRqRrAx2 = L4_MABX_B.SFunction1_o10_i;
14794 L4_MABX_B.SPN689_DisengageDiffLockRqC = L4_MABX_B.SFunction1_o11;
14795 L4_MABX_B.SPN690_DisengageDiffLockRqCF = L4_MABX_B.SFunction1_o12;
14796 L4_MABX_B.SPN691_DisengageDiffLockRqCR = L4_MABX_B.SFunction1_o13;
14797 L4_MABX_B.SPN5762_TransLoadRedInhibitRq = L4_MABX_B.SFunction1_o14;
14798 L4_MABX_B.SPN1852_TransmissionMode1 = L4_MABX_B.SFunction1_o15;
14799 L4_MABX_B.SPN1853_TransmissionMode2 = L4_MABX_B.SFunction1_o16;
14800 L4_MABX_B.SPN1854_TransmissionMode3 = L4_MABX_B.SFunction1_o17;
14801 L4_MABX_B.SPN1855_TransmissionMode4 = L4_MABX_B.SFunction1_o18;
14802 L4_MABX_B.SPN7695_TransAutoNeutralRequest = L4_MABX_B.SFunction1_o19;
14803 L4_MABX_B.SPN4255_TransRequestedLaunchGea = L4_MABX_B.SFunction1_o20;
14804 L4_MABX_B.SPN2985_TransShiftSelDispModeSw = L4_MABX_B.SFunction1_o21;
14805 L4_MABX_B.SPN4246_TransmissionMode5 = L4_MABX_B.SFunction1_o22;
14806 L4_MABX_B.SPN4247_TransmissionMode6 = L4_MABX_B.SFunction1_o23;
14807 L4_MABX_B.SPN4248_TransmissionMode7 = L4_MABX_B.SFunction1_o24;
14808 L4_MABX_B.SPN4249_TransmissionMode8 = L4_MABX_B.SFunction1_o25;
14809 }
14810
14811 /* End of Outputs for SubSystem: '<S815>/CAN_TX_50ms' */
14812
14813 /* Outputs for Enabled SubSystem: '<S624>/SystemTime_01' incorporates:
14814 * EnablePort: '<S625>/Enable'
14815 */
14816 /* Constant: '<S440>/Constant' */
14817 if (L4_MABX_P.Constant_Value_al > 0.0) {
14818 /* S-Function (rti_commonblock): '<S625>/S-Function1' */
14819 /* This comment workarounds a code generation problem */
14820
14821 /* dSPACE RTICAN RX Message Block: "SystemTime_01" Id:233836544 */
14822 {
14823 UInt32 *CAN_Msg;
14824 static dsfloat time_old = 0.0;
14825
14826 /* Read status and timestamp info (previous message) */
14827 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0xDF01000].timestamp !=
14828 time_old) {
14829 /* ... save timestamp info for the calculation of the RX status
14830 during the consecutive sample hit*/
14831 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0xDF01000].
14832 timestamp;
14833
14834 /* ... set the processed flag to one */
14835 L4_MABX_B.SFunction1_o5_h = 1.0;
14836 L4_MABX_B.SFunction1_o6_nm = (real_T)
14837 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0xDF01000].timestamp;
14838 L4_MABX_B.SFunction1_o7_ci = (real_T)
14839 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0xDF01000].deltatime;
14840 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0xDF01000].data;
14841
14842 /* Decode CAN message */
14843 {
14844 {
14845 rtican_Signal_t CAN_Sgn;
14846
14847 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
14848 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
14849 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14850 L4_MABX_B.SFunction1_o1_lg = ((real_T) CAN_Sgn.UnsignedSgn);
14851
14852 /* ...... "Source" (8|4, standard signal, unsigned int, little endian) */
14853 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
14854 CAN_Sgn.UnsignedSgn &= 0x0000000F;
14855 L4_MABX_B.SFunction1_o2_cb = ((real_T) CAN_Sgn.UnsignedSgn);
14856
14857 /* ...... "Date" (16|16, standard signal, unsigned int, little endian) */
14858 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
14859 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
14860 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
14861 L4_MABX_B.SFunction1_o3_ka = ((real_T) CAN_Sgn.UnsignedSgn);
14862
14863 /* ...... "Time" (32|32, standard signal, unsigned int, little endian) */
14864 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
14865 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
14866 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[6];
14867 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[7];
14868 L4_MABX_B.SFunction1_o4_k = 0.0001 * ( ((real_T) CAN_Sgn.UnsignedSgn)
14869 );
14870 }
14871 }
14872 } else {
14873 /* set RX status to 0 because no new message has arrived */
14874 L4_MABX_B.SFunction1_o5_h = 0.0;
14875 }
14876 }
14877 }
14878
14879 /* End of Constant: '<S440>/Constant' */
14880 /* End of Outputs for SubSystem: '<S624>/SystemTime_01' */
14881
14882 /* DataTypeConversion: '<S624>/Data Type Conversion8' */
14883 L4_MABX_B.RX_status_g = (L4_MABX_B.SFunction1_o5_h != 0.0);
14884
14885 /* Logic: '<S1034>/Operator' incorporates:
14886 * Constant: '<S1032>/Constant'
14887 */
14888 L4_MABX_B.Operator_j0v = (L4_MABX_P.Constant_Value_ku && L4_MABX_B.RX_status_g);
14889
14890 /* DataTypeConversion: '<S1034>/DataType' */
14891 L4_MABX_B.DataType_aa = L4_MABX_B.Operator_j0v;
14892
14893 /* Outputs for Enabled SubSystem: '<S1033>/Std_SystemTime_01' incorporates:
14894 * EnablePort: '<S1035>/Enable'
14895 */
14896 if (L4_MABX_B.DataType_aa) {
14897 /* S-Function (rti_commonblock): '<S1035>/S-Function1' incorporates:
14898 * Constant: '<S1033>/Constant'
14899 * Constant: '<S1033>/Constant1'
14900 */
14901 /* This comment workarounds a code generation problem */
14902
14903 /* dSPACE RTICAN TX Message Block: "Std_SystemTime_01" Id:5 */
14904 {
14905 static UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
14906 0x00 };
14907
14908 Float32 delayTime = 0.0;
14909
14910 /* link this pointer to CAN_Msg for use in initialize_io_units() */
14911 CANTP1_PTR_M3_C2_STD_0x5 = &(CAN_Msg[0]);
14912
14913 /* ... perform loop-back if required */
14914 if (L4_MABX_P.Constant1_Value_jf > 0.5) {
14915 /* ... updating the used tx-clientbuffer */
14916 can_tp1_msg_update_all( CANTP1_TX_M3_C2_MCRCLT_STD_0X5->module,
14917 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->queue );
14918
14919 /* ... Read status and timestamp info perform loop-back (previous message) */
14920 can_tp1_tx_msg_read_loopback(CANTP1_TX_M3_C2_MCRCLT_STD_0X5,
14921 8, // datalen
14922 &(CAN_Msg[0]),
14923 CANTP1_RX_SPMSG_M3_C2_STD);
14924
14925 /* Convert timestamp */
14926 if (CANTP1_TX_M3_C2_MCRCLT_STD_0X5->processed) {
14927 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->timestamp =
14928 rtk_dsts_time_to_simtime_convert
14929 (CANTP1_TX_M3_C2_MCRCLT_STD_0X5->timestamp);
14930 }
14931 } else {
14932 /* ... Read status and timestamp info (previous message) */
14933 can_tp1_msg_read_from_dsmcr(CANTP1_TX_M3_C2_MCRCLT_STD_0X5);
14934
14935 /* Convert timestamp */
14936 if (CANTP1_TX_M3_C2_MCRCLT_STD_0X5->processed) {
14937 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->timestamp =
14938 rtk_dsts_time_to_simtime_convert
14939 (CANTP1_TX_M3_C2_MCRCLT_STD_0X5->timestamp);
14940 }
14941 }
14942
14943 /* Messages with timestamp zero have been received in pause/stop state
14944 and must not be handled.
14945 */
14946 if (CANTP1_TX_M3_C2_MCRCLT_STD_0X5->timestamp > 0.0) {
14947 L4_MABX_B.SFunction1_o1_j = (real_T)
14948 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->processed;
14949 L4_MABX_B.SFunction1_o2_g = (real_T)
14950 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->timestamp;
14951 L4_MABX_B.SFunction1_o3 = (real_T)
14952 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->deltatime;
14953 L4_MABX_B.SFunction1_o4 = (real_T)
14954 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->delaytime;
14955 }
14956
14957 /* ... Encode Simulink signals of TX and RM blocks*/
14958 {
14959 rtican_Signal_t CAN_Sgn;
14960 UInt32 i;
14961
14962 /* Initialize the static message data to zero */
14963 for (i=0; i<8; i++ )
14964 CAN_Msg[i] = 0;
14965
14966 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
14967 /* Add or substract 0.5 in order to round to nearest integer */
14968 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SFunction1_o1_lg ) + 0.5);
14969 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14970 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
14971
14972 /* ...... "Source" (8|4, standard signal, unsigned int, little endian) */
14973 /* Add or substract 0.5 in order to round to nearest integer */
14974 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SFunction1_o2_cb ) + 0.5);
14975 CAN_Sgn.UnsignedSgn &= 0x0000000F;
14976 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
14977
14978 /* ...... "Date" (16|16, standard signal, unsigned int, little endian) */
14979 /* Add or substract 0.5 in order to round to nearest integer */
14980 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SFunction1_o3_ka ) + 0.5);
14981 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
14982 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
14983 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte1;
14984
14985 /* ...... "Time" (32|32, standard signal, unsigned int, little endian) */
14986 /* Add or substract 0.5 in order to round to nearest integer */
14987 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SFunction1_o4_k - ( 0 ) ) /
14988 0.0001 + 0.5);
14989 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
14990 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte1;
14991 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte2;
14992 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte3;
14993 }
14994
14995 delayTime = (Float32) L4_MABX_P.Constant_Value_dr / (2000);
14996
14997 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
14998 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X5], 8, &(CAN_Msg[0]),
14999 delayTime);
15000 }
15001 }
15002
15003 /* End of Outputs for SubSystem: '<S1033>/Std_SystemTime_01' */
15004
15005 /* Constant: '<S1024>/Byte1' */
15006 L4_MABX_B.VectorConcatenate[0] = L4_MABX_P.Byte1_Value_i;
15007
15008 /* Constant: '<S1024>/Byte2' */
15009 L4_MABX_B.VectorConcatenate[1] = L4_MABX_P.Byte2_Value_a0;
15010
15011 /* Constant: '<S1024>/Byte3' */
15012 L4_MABX_B.VectorConcatenate[2] = L4_MABX_P.Byte3_Value_o;
15013
15014 /* Constant: '<S1024>/Byte4' */
15015 L4_MABX_B.VectorConcatenate[3] = L4_MABX_P.Byte4_Value_l;
15016
15017 /* Constant: '<S1024>/Byte5' */
15018 L4_MABX_B.VectorConcatenate[4] = L4_MABX_P.Byte5_Value_l;
15019
15020 /* Constant: '<S1024>/Byte6' */
15021 L4_MABX_B.VectorConcatenate[5] = L4_MABX_P.Byte6_Value_h;
15022
15023 /* Constant: '<S1024>/Byte7' */
15024 L4_MABX_B.VectorConcatenate[6] = L4_MABX_P.Byte7_Value_g;
15025
15026 /* Constant: '<S1024>/Byte8' */
15027 L4_MABX_B.VectorConcatenate[7] = L4_MABX_P.Byte8_Value_h;
15028
15029 /* DataTypeConversion: '<S1028>/Data Type Conversion' */
15030 for (i = 0; i < 8; i++) {
15031 L4_MABX_B.DataTypeConversion[i] = L4_MABX_B.VectorConcatenate[i];
15032 }
15033
15034 /* End of DataTypeConversion: '<S1028>/Data Type Conversion' */
15035
15036 /* UnitDelay: '<S825>/Unit Delay2' */
15037 L4_MABX_B.UnitDelay2 = L4_MABX_DW.UnitDelay2_DSTATE;
15038
15039 /* Outputs for Triggered SubSystem: '<S1028>/CAN_TYPE1_TX_M1_C1' incorporates:
15040 * TriggerPort: '<S1030>/Trigger'
15041 */
15042 zcEvent = (L4_MABX_B.UnitDelay2 &&
15043 (L4_MABX_PrevZCX.CAN_TYPE1_TX_M1_C1_Trig_ZCE_p != POS_ZCSIG));
15044 if (zcEvent) {
15045 /* S-Function (rti_commonblock): '<S1030>/S-Function1' */
15046 /* This comment workarounds a code generation problem */
15047
15048 /* dSPACE RTICAN TX Message Block: "TX Message" Id:418184965 */
15049 {
15050 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
15051
15052 Float32 delayTime = 0.0;
15053
15054 /* ... Read status and timestamp info (previous message) */
15055 can_tp1_msg_read(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]);
15056
15057 /* Convert timestamp */
15058 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->processed) {
15059 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->timestamp =
15060 rtk_dsts_time_to_simtime_convert
15061 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->timestamp);
15062 }
15063
15064 /* Messages with timestamp zero have been received in pause/stop state
15065 and must not be handled.
15066 */
15067 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->timestamp > 0.0) {
15068 L4_MABX_B.SFunction1_o1_p = (real_T)
15069 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->processed;
15070 L4_MABX_B.SFunction1_o2_m = (real_T)
15071 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->timestamp;
15072 L4_MABX_B.SFunction1_o3_g = (real_T)
15073 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->deltatime;
15074 L4_MABX_B.SFunction1_o4_c = (real_T)
15075 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->delaytime;
15076 }
15077
15078 /* ... Encode Simulink signals of TX and RM blocks*/
15079 {
15080 rtican_Signal_t CAN_Sgn;
15081
15082 /* ...... "Byte1" (0|8, standard signal, unsigned int, little endian) */
15083 /* Add or substract 0.5 in order to round to nearest integer */
15084 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[0] ) +
15085 0.5);
15086 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15087 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
15088
15089 /* ...... "Byte2" (8|8, standard signal, unsigned int, little endian) */
15090 /* Add or substract 0.5 in order to round to nearest integer */
15091 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[1] ) +
15092 0.5);
15093 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15094 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
15095
15096 /* ...... "Byte3" (16|8, standard signal, unsigned int, little endian) */
15097 /* Add or substract 0.5 in order to round to nearest integer */
15098 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[2] ) +
15099 0.5);
15100 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15101 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
15102
15103 /* ...... "Byte4" (24|8, standard signal, unsigned int, little endian) */
15104 /* Add or substract 0.5 in order to round to nearest integer */
15105 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[3] ) +
15106 0.5);
15107 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15108 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
15109
15110 /* ...... "Byte5" (32|8, standard signal, unsigned int, little endian) */
15111 /* Add or substract 0.5 in order to round to nearest integer */
15112 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[4] ) +
15113 0.5);
15114 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15115 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
15116
15117 /* ...... "Byte6" (40|8, standard signal, unsigned int, little endian) */
15118 /* Add or substract 0.5 in order to round to nearest integer */
15119 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[5] ) +
15120 0.5);
15121 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15122 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
15123
15124 /* ...... "Byte7" (48|8, standard signal, unsigned int, little endian) */
15125 /* Add or substract 0.5 in order to round to nearest integer */
15126 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[6] ) +
15127 0.5);
15128 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15129 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
15130
15131 /* ...... "Byte8" (56|8, standard signal, unsigned int, little endian) */
15132 /* Add or substract 0.5 in order to round to nearest integer */
15133 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[7] ) +
15134 0.5);
15135 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15136 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
15137 }
15138
15139 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
15140 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05], 8,
15141 &(CAN_Msg[0]), delayTime);
15142 }
15143 }
15144
15145 L4_MABX_PrevZCX.CAN_TYPE1_TX_M1_C1_Trig_ZCE_p = L4_MABX_B.UnitDelay2;
15146
15147 /* End of Outputs for SubSystem: '<S1028>/CAN_TYPE1_TX_M1_C1' */
15148
15149 /* UnitDelay: '<S825>/Unit Delay1' */
15150 L4_MABX_B.UnitDelay1_m = L4_MABX_DW.UnitDelay1_DSTATE_e;
15151
15152 /* MultiPortSwitch: '<S825>/Multiport Switch' incorporates:
15153 * Constant: '<S1026>/Byte1'
15154 * Constant: '<S1026>/Byte2'
15155 * Constant: '<S1026>/Byte3'
15156 * Constant: '<S1026>/Byte4'
15157 * Constant: '<S1026>/Byte5'
15158 * Constant: '<S1026>/Byte6'
15159 * Constant: '<S1026>/Byte7'
15160 * Constant: '<S1026>/Byte8'
15161 * Constant: '<S1027>/Byte1'
15162 * Constant: '<S1027>/Byte2'
15163 * Constant: '<S1027>/Byte3'
15164 * Constant: '<S1027>/Byte4'
15165 * Constant: '<S1027>/Byte5'
15166 * Constant: '<S1027>/Byte6'
15167 * Constant: '<S1027>/Byte7'
15168 * Constant: '<S1027>/Byte8'
15169 */
15170 if (L4_MABX_B.UnitDelay1_m == 1) {
15171 L4_MABX_B.VectorConcatenate_m[7] = L4_MABX_P.Byte8_Value_a;
15172 L4_MABX_B.VectorConcatenate_m[6] = L4_MABX_P.Byte7_Value_d;
15173 L4_MABX_B.VectorConcatenate_m[5] = L4_MABX_P.Byte6_Value_o;
15174 L4_MABX_B.VectorConcatenate_m[4] = L4_MABX_P.Byte5_Value_h;
15175 L4_MABX_B.VectorConcatenate_m[3] = L4_MABX_P.Byte4_Value_h;
15176 L4_MABX_B.VectorConcatenate_m[2] = L4_MABX_P.Byte3_Value_g;
15177 L4_MABX_B.VectorConcatenate_m[1] = L4_MABX_P.Byte2_Value_a;
15178 L4_MABX_B.VectorConcatenate_m[0] = L4_MABX_P.Byte1_Value_e;
15179 for (i = 0; i < 8; i++) {
15180 L4_MABX_B.MultiportSwitch_c[i] = L4_MABX_B.VectorConcatenate_m[i];
15181 }
15182 } else {
15183 L4_MABX_B.VectorConcatenate_k[7] = L4_MABX_P.Byte8_Value;
15184 L4_MABX_B.VectorConcatenate_k[6] = L4_MABX_P.Byte7_Value;
15185 L4_MABX_B.VectorConcatenate_k[5] = L4_MABX_P.Byte6_Value;
15186 L4_MABX_B.VectorConcatenate_k[4] = L4_MABX_P.Byte5_Value;
15187 L4_MABX_B.VectorConcatenate_k[3] = L4_MABX_P.Byte4_Value;
15188 L4_MABX_B.VectorConcatenate_k[2] = L4_MABX_P.Byte3_Value;
15189 L4_MABX_B.VectorConcatenate_k[1] = L4_MABX_P.Byte2_Value;
15190 L4_MABX_B.VectorConcatenate_k[0] = L4_MABX_P.Byte1_Value;
15191 for (i = 0; i < 8; i++) {
15192 L4_MABX_B.MultiportSwitch_c[i] = L4_MABX_B.VectorConcatenate_k[i];
15193 }
15194 }
15195
15196 /* End of MultiPortSwitch: '<S825>/Multiport Switch' */
15197
15198 /* DataTypeConversion: '<S1029>/Data Type Conversion' */
15199 for (i = 0; i < 8; i++) {
15200 L4_MABX_B.DataTypeConversion_n[i] = L4_MABX_B.MultiportSwitch_c[i];
15201 }
15202
15203 /* End of DataTypeConversion: '<S1029>/Data Type Conversion' */
15204
15205 /* UnitDelay: '<S825>/Unit Delay3' */
15206 L4_MABX_B.UnitDelay3 = L4_MABX_DW.UnitDelay3_DSTATE;
15207
15208 /* Outputs for Triggered SubSystem: '<S1029>/CAN_TYPE1_TX_M1_C1' incorporates:
15209 * TriggerPort: '<S1031>/Trigger'
15210 */
15211 zcEvent = (L4_MABX_B.UnitDelay3 &&
15212 (L4_MABX_PrevZCX.CAN_TYPE1_TX_M1_C1_Trig_ZCE != POS_ZCSIG));
15213 if (zcEvent) {
15214 /* S-Function (rti_commonblock): '<S1031>/S-Function1' */
15215 /* This comment workarounds a code generation problem */
15216
15217 /* dSPACE RTICAN TX Message Block: "TX Message" Id:418119429 */
15218 {
15219 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
15220
15221 Float32 delayTime = 0.0;
15222
15223 /* ... Read status and timestamp info (previous message) */
15224 can_tp1_msg_read(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]);
15225
15226 /* Convert timestamp */
15227 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->processed) {
15228 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->timestamp =
15229 rtk_dsts_time_to_simtime_convert
15230 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->timestamp);
15231 }
15232
15233 /* Messages with timestamp zero have been received in pause/stop state
15234 and must not be handled.
15235 */
15236 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->timestamp > 0.0) {
15237 L4_MABX_B.SFunction1_o1_m = (real_T)
15238 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->processed;
15239 L4_MABX_B.SFunction1_o2_l = (real_T)
15240 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->timestamp;
15241 L4_MABX_B.SFunction1_o3_h = (real_T)
15242 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->deltatime;
15243 L4_MABX_B.SFunction1_o4_l = (real_T)
15244 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->delaytime;
15245 }
15246
15247 /* ... Encode Simulink signals of TX and RM blocks*/
15248 {
15249 rtican_Signal_t CAN_Sgn;
15250
15251 /* ...... "Byte1" (0|8, standard signal, unsigned int, little endian) */
15252 /* Add or substract 0.5 in order to round to nearest integer */
15253 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_n[0] ) +
15254 0.5);
15255 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15256 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
15257
15258 /* ...... "Byte2" (8|8, standard signal, unsigned int, little endian) */
15259 /* Add or substract 0.5 in order to round to nearest integer */
15260 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_n[1] ) +
15261 0.5);
15262 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15263 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
15264
15265 /* ...... "Byte3" (16|8, standard signal, unsigned int, little endian) */
15266 /* Add or substract 0.5 in order to round to nearest integer */
15267 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_n[2] ) +
15268 0.5);
15269 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15270 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
15271
15272 /* ...... "Byte4" (24|8, standard signal, unsigned int, little endian) */
15273 /* Add or substract 0.5 in order to round to nearest integer */
15274 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_n[3] ) +
15275 0.5);
15276 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15277 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
15278
15279 /* ...... "Byte5" (32|8, standard signal, unsigned int, little endian) */
15280 /* Add or substract 0.5 in order to round to nearest integer */
15281 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_n[4] ) +
15282 0.5);
15283 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15284 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
15285
15286 /* ...... "Byte6" (40|8, standard signal, unsigned int, little endian) */
15287 /* Add or substract 0.5 in order to round to nearest integer */
15288 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_n[5] ) +
15289 0.5);
15290 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15291 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
15292
15293 /* ...... "Byte7" (48|8, standard signal, unsigned int, little endian) */
15294 /* Add or substract 0.5 in order to round to nearest integer */
15295 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_n[6] ) +
15296 0.5);
15297 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15298 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
15299
15300 /* ...... "Byte8" (56|8, standard signal, unsigned int, little endian) */
15301 /* Add or substract 0.5 in order to round to nearest integer */
15302 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_n[7] ) +
15303 0.5);
15304 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15305 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
15306 }
15307
15308 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
15309 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05], 8,
15310 &(CAN_Msg[0]), delayTime);
15311 }
15312 }
15313
15314 L4_MABX_PrevZCX.CAN_TYPE1_TX_M1_C1_Trig_ZCE = L4_MABX_B.UnitDelay3;
15315
15316 /* End of Outputs for SubSystem: '<S1029>/CAN_TYPE1_TX_M1_C1' */
15317
15318 /* Chart: '<S825>/Chart' incorporates:
15319 * Constant: '<S825>/Constant1'
15320 */
15321 if (L4_MABX_DW.temporalCounter_i1_b < 255U) {
15322 L4_MABX_DW.temporalCounter_i1_b++;
15323 }
15324
15325 /* Gateway: OUTPUTS_PIC_KW/CAN_Out_PIC_KW/CAN_TX_BAM/Chart */
15326 /* During: OUTPUTS_PIC_KW/CAN_Out_PIC_KW/CAN_TX_BAM/Chart */
15327 if (L4_MABX_DW.is_active_c4_SUB_ECU_L4_MABX_HW == 0U) {
15328 /* Entry: OUTPUTS_PIC_KW/CAN_Out_PIC_KW/CAN_TX_BAM/Chart */
15329 L4_MABX_DW.is_active_c4_SUB_ECU_L4_MABX_HW = 1U;
15330
15331 /* Entry Internal: OUTPUTS_PIC_KW/CAN_Out_PIC_KW/CAN_TX_BAM/Chart */
15332 /* Transition: '<S1025>:4' */
15333 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_Init_j;
15334
15335 /* Entry 'Init': '<S1025>:1' */
15336 L4_MABX_B.State = 0U;
15337 L4_MABX_B.enTPCM = false;
15338 L4_MABX_B.enTPDT = false;
15339 L4_MABX_B.TPCM_ts_Prev = L4_MABX_B.SFunction1_o2_m;
15340 L4_MABX_B.TPDT_ts_Prev = L4_MABX_B.SFunction1_o2_l;
15341 L4_MABX_B.TPDT_count = 0U;
15342 } else {
15343 switch (L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf) {
15344 case L4_MABX_IN_CheckPacketCount:
15345 L4_MABX_B.State = 6U;
15346
15347 /* During 'CheckPacketCount': '<S1025>:11' */
15348 if (L4_MABX_B.TPDT_count <= L4_MABX_P.Constant1_Value_kz) {
15349 /* Transition: '<S1025>:18' */
15350 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_SendTPDT;
15351 L4_MABX_DW.temporalCounter_i1_b = 0U;
15352
15353 /* Entry 'SendTPDT': '<S1025>:6' */
15354 L4_MABX_B.State = 4U;
15355 L4_MABX_B.enTPDT = true;
15356 } else {
15357 /* Transition: '<S1025>:19' */
15358 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf =
15359 L4_MABX_IN_WaitForNextPeriod;
15360 L4_MABX_DW.temporalCounter_i1_b = 0U;
15361
15362 /* Entry 'WaitForNextPeriod': '<S1025>:17' */
15363 L4_MABX_B.State = 7U;
15364 }
15365 break;
15366
15367 case L4_MABX_IN_Init_j:
15368 /* During 'Init': '<S1025>:1' */
15369 /* Transition: '<S1025>:9' */
15370 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_StartMsg;
15371
15372 /* Entry 'StartMsg': '<S1025>:30' */
15373 L4_MABX_B.State = 1U;
15374 L4_MABX_B.TPDT_count = 1U;
15375 break;
15376
15377 case L4_MABX_IN_InterframeDelay:
15378 L4_MABX_B.State = 3U;
15379
15380 /* During 'InterframeDelay': '<S1025>:7' */
15381 if (L4_MABX_DW.temporalCounter_i1_b >= 5U) {
15382 /* Transition: '<S1025>:10' */
15383 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_SendTPDT;
15384 L4_MABX_DW.temporalCounter_i1_b = 0U;
15385
15386 /* Entry 'SendTPDT': '<S1025>:6' */
15387 L4_MABX_B.State = 4U;
15388 L4_MABX_B.enTPDT = true;
15389 }
15390 break;
15391
15392 case L4_MABX_IN_InterframeDelay1:
15393 L4_MABX_B.State = 5U;
15394
15395 /* During 'InterframeDelay1': '<S1025>:12' */
15396 if (L4_MABX_DW.temporalCounter_i1_b >= 5U) {
15397 /* Transition: '<S1025>:14' */
15398 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_CheckPacketCount;
15399
15400 /* Entry 'CheckPacketCount': '<S1025>:11' */
15401 L4_MABX_B.State = 6U;
15402 i = (int32_T)(L4_MABX_B.TPDT_count + 1U);
15403 if ((uint32_T)i > 255U) {
15404 i = 255;
15405 }
15406
15407 L4_MABX_B.TPDT_count = (uint8_T)i;
15408 }
15409 break;
15410
15411 case L4_MABX_IN_SendTPCM:
15412 L4_MABX_B.State = 2U;
15413
15414 /* During 'SendTPCM': '<S1025>:5' */
15415 if (L4_MABX_DW.temporalCounter_i1_b >= 1U) {
15416 /* Transition: '<S1025>:8' */
15417 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_InterframeDelay;
15418 L4_MABX_DW.temporalCounter_i1_b = 0U;
15419
15420 /* Entry 'InterframeDelay': '<S1025>:7' */
15421 L4_MABX_B.State = 3U;
15422 L4_MABX_B.enTPCM = false;
15423 L4_MABX_B.TPCM_ts_Prev = L4_MABX_B.SFunction1_o2_m;
15424 }
15425 break;
15426
15427 case L4_MABX_IN_SendTPDT:
15428 L4_MABX_B.State = 4U;
15429
15430 /* During 'SendTPDT': '<S1025>:6' */
15431 if (L4_MABX_DW.temporalCounter_i1_b >= 1U) {
15432 /* Transition: '<S1025>:13' */
15433 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_InterframeDelay1;
15434 L4_MABX_DW.temporalCounter_i1_b = 0U;
15435
15436 /* Entry 'InterframeDelay1': '<S1025>:12' */
15437 L4_MABX_B.State = 5U;
15438 L4_MABX_B.enTPDT = false;
15439 L4_MABX_B.TPDT_ts_Prev = L4_MABX_B.SFunction1_o2_l;
15440 }
15441 break;
15442
15443 case L4_MABX_IN_StartMsg:
15444 /* During 'StartMsg': '<S1025>:30' */
15445 /* Transition: '<S1025>:31' */
15446 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_SendTPCM;
15447 L4_MABX_DW.temporalCounter_i1_b = 0U;
15448
15449 /* Entry 'SendTPCM': '<S1025>:5' */
15450 L4_MABX_B.State = 2U;
15451 L4_MABX_B.enTPCM = true;
15452 break;
15453
15454 default:
15455 L4_MABX_B.State = 7U;
15456
15457 /* During 'WaitForNextPeriod': '<S1025>:17' */
15458 if (L4_MABX_DW.temporalCounter_i1_b >= 185U) {
15459 /* Transition: '<S1025>:20' */
15460 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_StartMsg;
15461
15462 /* Entry 'StartMsg': '<S1025>:30' */
15463 L4_MABX_B.State = 1U;
15464 L4_MABX_B.TPDT_count = 1U;
15465 }
15466 break;
15467 }
15468 }
15469
15470 /* End of Chart: '<S825>/Chart' */
15471
15472 /* RelationalOperator: '<S1053>/Operator' incorporates:
15473 * Constant: '<S1044>/Constant2'
15474 */
15475 L4_MABX_B.Operator_el = (L4_MABX_P.Constant2_Value_bi == MABX_Mode);
15476
15477 /* S-Function (rti_commonblock): '<S1036>/S-Function1' */
15478 /* This comment workarounds a code generation problem */
15479
15480 /* write output state value to digital output channel 4 on port 1 */
15481 dio_tp4_digout_write(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH4, (UInt16)
15482 (L4_MABX_B.Operator_el << 3));
15483
15484 /* RateTransition: '<S1044>/TmpRTBAtANDInport1' */
15485 if (L4_MABX_M->Timing.RateInteraction.TID0_3 == 1) {
15486 L4_MABX_B.TmpRTBAtANDInport1 = L4_MABX_DW.TmpRTBAtANDInport1_Buffer0;
15487 }
15488
15489 /* End of RateTransition: '<S1044>/TmpRTBAtANDInport1' */
15490
15491 /* Logic: '<S1044>/AND' */
15492 L4_MABX_B.AND = ((L4_MABX_B.TmpRTBAtANDInport1 != 0.0) && AutonomousEnabled);
15493
15494 /* Logic: '<S1044>/OR' */
15495 L4_MABX_B.OR = (AutonomousOutputEnabled || L4_MABX_B.AND);
15496
15497 /* S-Function (rti_commonblock): '<S1037>/S-Function1' */
15498 /* This comment workarounds a code generation problem */
15499
15500 /* write output state value to digital output channel 2 on port 1 */
15501 dio_tp4_digout_write(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH2, (UInt16)
15502 (L4_MABX_B.OR << 1));
15503
15504 /* S-Function (rti_commonblock): '<S1038>/S-Function1' */
15505 /* This comment workarounds a code generation problem */
15506
15507 /* write output state value to digital output channel 1 on port 1 */
15508 dio_tp4_digout_write(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH1, (UInt16)
15509 (EnableSw << 0));
15510
15511 /* RelationalOperator: '<S1052>/Operator' incorporates:
15512 * Constant: '<S1044>/Constant3'
15513 */
15514 L4_MABX_B.Operator_kk = (L4_MABX_P.Constant3_Value_eo == SupervisorMode);
15515
15516 /* S-Function (rti_commonblock): '<S1039>/S-Function1' */
15517 /* This comment workarounds a code generation problem */
15518
15519 /* write output state value to digital output channel 3 on port 1 */
15520 dio_tp4_digout_write(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH3, (UInt16)
15521 (L4_MABX_B.Operator_kk << 2));
15522
15523 /* Logic: '<S1042>/Logical Operator' */
15524 L4_MABX_B.LogicalOperator_p = !AutonomousOutputEnabled;
15525
15526 /* Outputs for Atomic SubSystem: '<S1042>/If_Then_Else4' */
15527
15528 /* Constant: '<S1042>/APTC_PEDAL_A_PWM_FREQ_HZ_APV' */
15529 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_p,
15530 L4_MABX_B.Pedal_1_pwm_freq_raw_value,
15531 L4_MABX_P.APTC_PEDAL_A_PWM_FREQ_HZ_APV_Va,
15532 &L4_MABX_B.If_Then_Else4);
15533
15534 /* End of Outputs for SubSystem: '<S1042>/If_Then_Else4' */
15535
15536 /* MinMax: '<S816>/MinMax' incorporates:
15537 * Constant: '<S816>/Constant2'
15538 */
15539 DeltaTime = L4_MABX_B.If_Then_Else4.Switch;
15540 PositionFinalLimited = L4_MABX_P.Constant2_Value_g4;
15541 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
15542 PositionFinalLimited = DeltaTime;
15543 }
15544
15545 L4_MABX_B.MinMax_c = PositionFinalLimited;
15546
15547 /* End of MinMax: '<S816>/MinMax' */
15548
15549 /* DataTypeConversion: '<S816>/Data Type Conversion1' */
15550 L4_MABX_B.DataTypeConversion1 = L4_MABX_B.MinMax_c;
15551
15552 /* Product: '<S816>/Divide' incorporates:
15553 * Constant: '<S816>/Constant3'
15554 */
15555 L4_MABX_B.Divide_p = L4_MABX_P.Constant3_Value_m /
15556 L4_MABX_B.DataTypeConversion1;
15557
15558 /* DataTypeConversion: '<S816>/Data Type Conversion5' */
15559 L4_MABX_B.PWMOut_P2C1_Period = L4_MABX_B.Divide_p;
15560
15561 /* Lookup_n-D: '<S1042>/1-D Lookup Table2' */
15562 L4_MABX_B.PedalPWMA_DC_out = look1_binlcapw(L4_MABX_B.If_Then_Else_f.Switch,
15563 L4_MABX_P.uDLookupTable2_bp01Data, L4_MABX_P.uDLookupTable2_tableData, 1U);
15564
15565 /* Outputs for Atomic SubSystem: '<S1042>/If_Then_Else1' */
15566 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_p,
15567 L4_MABX_B.Pedal_1_pwm_dc_raw_value,
15568 L4_MABX_B.PedalPWMA_DC_out, &L4_MABX_B.If_Then_Else1_bg);
15569
15570 /* End of Outputs for SubSystem: '<S1042>/If_Then_Else1' */
15571
15572 /* Gain: '<S816>/Gain1' */
15573 L4_MABX_B.Gain1_p = L4_MABX_P.Gain1_Gain_j * L4_MABX_B.If_Then_Else1_bg.Switch;
15574
15575 /* DataTypeConversion: '<S816>/Data Type Conversion6' */
15576 L4_MABX_B.PWMOut_P2C1_DC = L4_MABX_B.Gain1_p;
15577
15578 /* S-Function (rti_commonblock): '<S1040>/S-Function1' */
15579 /* This comment workarounds a code generation problem */
15580
15581 /* write PWM Period and DutyCycle for output channel 1 on port 2 */
15582 dio_tp4_pwm_update(DIO_TP4_1_MODULE_ADDR , 2, 1, (real_T)
15583 L4_MABX_B.PWMOut_P2C1_Period, (real_T)
15584 L4_MABX_B.PWMOut_P2C1_DC);
15585
15586 /* Outputs for Atomic SubSystem: '<S1042>/If_Then_Else5' */
15587
15588 /* Constant: '<S1042>/APTC_PEDAL_B_PWM_FREQ_HZ_APV' */
15589 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_p,
15590 L4_MABX_B.Pedal_2_pwm_freq_raw_value,
15591 L4_MABX_P.APTC_PEDAL_B_PWM_FREQ_HZ_APV_Va,
15592 &L4_MABX_B.If_Then_Else5);
15593
15594 /* End of Outputs for SubSystem: '<S1042>/If_Then_Else5' */
15595
15596 /* MinMax: '<S816>/MinMax1' incorporates:
15597 * Constant: '<S816>/Constant4'
15598 */
15599 DeltaTime = L4_MABX_B.If_Then_Else5.Switch;
15600 PositionFinalLimited = L4_MABX_P.Constant4_Value_h;
15601 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
15602 PositionFinalLimited = DeltaTime;
15603 }
15604
15605 L4_MABX_B.MinMax1_b = PositionFinalLimited;
15606
15607 /* End of MinMax: '<S816>/MinMax1' */
15608
15609 /* DataTypeConversion: '<S816>/Data Type Conversion2' */
15610 L4_MABX_B.DataTypeConversion2_o = L4_MABX_B.MinMax1_b;
15611
15612 /* Product: '<S816>/Divide1' incorporates:
15613 * Constant: '<S816>/Constant1'
15614 */
15615 L4_MABX_B.Divide1 = L4_MABX_P.Constant1_Value_eb /
15616 L4_MABX_B.DataTypeConversion2_o;
15617
15618 /* DataTypeConversion: '<S816>/Data Type Conversion9' */
15619 L4_MABX_B.PWMOut_P2C2_Period = L4_MABX_B.Divide1;
15620
15621 /* Lookup_n-D: '<S1042>/1-D Lookup Table3' */
15622 L4_MABX_B.PedalPWMB_DC_out = look1_binlcapw(L4_MABX_B.If_Then_Else_f.Switch,
15623 L4_MABX_P.uDLookupTable3_bp01Data, L4_MABX_P.uDLookupTable3_tableData, 1U);
15624
15625 /* Outputs for Atomic SubSystem: '<S1042>/If_Then_Else2' */
15626 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_p,
15627 L4_MABX_B.Pedal_2_pwm_dc_raw_value,
15628 L4_MABX_B.PedalPWMB_DC_out, &L4_MABX_B.If_Then_Else2_d);
15629
15630 /* End of Outputs for SubSystem: '<S1042>/If_Then_Else2' */
15631
15632 /* Gain: '<S816>/Gain' */
15633 L4_MABX_B.Gain_j = L4_MABX_P.Gain_Gain_e * L4_MABX_B.If_Then_Else2_d.Switch;
15634
15635 /* DataTypeConversion: '<S816>/Data Type Conversion10' */
15636 L4_MABX_B.PWMOut_P2C2_DC = L4_MABX_B.Gain_j;
15637
15638 /* S-Function (rti_commonblock): '<S1041>/S-Function1' */
15639 /* This comment workarounds a code generation problem */
15640
15641 /* write PWM Period and DutyCycle for output channel 2 on port 2 */
15642 dio_tp4_pwm_update(DIO_TP4_1_MODULE_ADDR , 2, 2, (real_T)
15643 L4_MABX_B.PWMOut_P2C2_Period, (real_T)
15644 L4_MABX_B.PWMOut_P2C2_DC);
15645
15646 /* S-Function (rti_commonblock): '<S723>/S-Function1' */
15647 /* This comment workarounds a code generation problem */
15648
15649 /* Gain: '<S402>/ShifterControlDC' */
15650 L4_MABX_B.ShiftControlDC = L4_MABX_P.ShifterControlDC_Gain *
15651 L4_MABX_B.SFunction1_o2_h;
15652
15653 /* RelationalOperator: '<S1043>/Relational Operator' incorporates:
15654 * Constant: '<S1043>/Constant'
15655 */
15656 L4_MABX_B.RelationalOperator_k1 = (L4_MABX_B.ShiftControlDC >=
15657 L4_MABX_P.Constant_Value_alu);
15658
15659 /* RelationalOperator: '<S1043>/Relational Operator1' incorporates:
15660 * Constant: '<S1043>/Constant1'
15661 */
15662 L4_MABX_B.RelationalOperator1_m1 = (L4_MABX_B.ShiftControlDC <=
15663 L4_MABX_P.Constant1_Value_b);
15664
15665 /* Logic: '<S1043>/Logical Operator' */
15666 L4_MABX_B.LogicalOperator_hu = (L4_MABX_B.RelationalOperator_k1 &&
15667 L4_MABX_B.RelationalOperator1_m1);
15668
15669 /* RelationalOperator: '<S1049>/Compare' incorporates:
15670 * Constant: '<S1049>/Constant'
15671 */
15672 L4_MABX_B.Compare_p = (L4_MABX_B.SPN524_TransSelectedGear ==
15673 L4_MABX_P.Constant_Value_k3);
15674
15675 /* RelationalOperator: '<S1050>/Compare' incorporates:
15676 * Constant: '<S1050>/Constant'
15677 */
15678 L4_MABX_B.Compare_k = (L4_MABX_B.SPN523_TransCurrentGear ==
15679 L4_MABX_P.Constant_Value_g1);
15680
15681 /* Logic: '<S1043>/Logical Operator1' */
15682 L4_MABX_B.LogicalOperator1_j0 = (L4_MABX_B.Compare_p && L4_MABX_B.Compare_k);
15683
15684 /* Outputs for Atomic SubSystem: '<S1043>/If_Then_Else' */
15685
15686 /* Constant: '<S1043>/F_ALLOW_ETC2_FOR_NEUTRAL_OUTPUT_APV' incorporates:
15687 * Constant: '<S1043>/Constant2'
15688 */
15689 L4_MABX_If_Then_Else3(L4_MABX_P.F_ALLOW_ETC2_FOR_NEUTRAL_OUTPUT,
15690 L4_MABX_B.LogicalOperator1_j0,
15691 L4_MABX_P.Constant2_Value_dd, &L4_MABX_B.If_Then_Else_i);
15692
15693 /* End of Outputs for SubSystem: '<S1043>/If_Then_Else' */
15694
15695 /* Logic: '<S1043>/Logical Operator2' */
15696 L4_MABX_B.Neutral = (L4_MABX_B.LogicalOperator_hu ||
15697 L4_MABX_B.If_Then_Else_i.Switch);
15698
15699 /* Logic: '<S816>/Logical Operator' */
15700 L4_MABX_B.LogicalOperator_mg = !L4_MABX_B.Neutral;
15701
15702 /* Outputs for Enabled SubSystem: '<S559>/GNSSDOPs_011' incorporates:
15703 * EnablePort: '<S560>/Enable'
15704 */
15705 /* Constant: '<S427>/Constant' */
15706 if (L4_MABX_P.Constant_Value_c > 0.0) {
15707 /* S-Function (rti_commonblock): '<S560>/S-Function1' */
15708 /* This comment workarounds a code generation problem */
15709
15710 /* dSPACE RTICAN RX Message Block: "GNSSDOPs_01" Id:435815168 */
15711 {
15712 UInt32 *CAN_Msg;
15713 static dsfloat time_old = 0.0;
15714
15715 /* Read status and timestamp info (previous message) */
15716 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0300].timestamp !=
15717 time_old) {
15718 /* ... save timestamp info for the calculation of the RX status
15719 during the consecutive sample hit*/
15720 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0300].
15721 timestamp;
15722
15723 /* ... set the processed flag to one */
15724 L4_MABX_B.SFunction1_o7_oj = 1.0;
15725 L4_MABX_B.SFunction1_o8_ia = (real_T)
15726 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0300].timestamp;
15727 L4_MABX_B.SFunction1_o9_n = (real_T)
15728 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0300].deltatime;
15729 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0300].data;
15730
15731 /* Decode CAN message */
15732 {
15733 {
15734 rtican_Signal_t CAN_Sgn;
15735
15736 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
15737 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
15738 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15739 L4_MABX_B.SFunction1_o1_dm = ((real_T) CAN_Sgn.UnsignedSgn);
15740
15741 /* ...... "SetMode" (8|3, standard signal, unsigned int, little endian) */
15742 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
15743 CAN_Sgn.UnsignedSgn &= 0x00000007;
15744 L4_MABX_B.SFunction1_o2_az = ((real_T) CAN_Sgn.UnsignedSgn);
15745
15746 /* ...... "OpMode" (11|3, standard signal, unsigned int, little endian) */
15747 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
15748 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 3;
15749 CAN_Sgn.UnsignedSgn &= 0x00000007;
15750 L4_MABX_B.SFunction1_o3_fh = ((real_T) CAN_Sgn.UnsignedSgn);
15751
15752 /* ...... "HDOP_" (16|16, standard signal, signed int, little endian) */
15753 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
15754 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
15755 CAN_Sgn.SignedSgn &= 0x0000FFFF;
15756 if (CAN_Sgn.SignedSgn >> 15) {
15757 CAN_Sgn.SignedSgn |= 0xFFFF0000;
15758 }
15759
15760 L4_MABX_B.SFunction1_o4_mb = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
15761
15762 /* ...... "VDOP" (32|16, standard signal, signed int, little endian) */
15763 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
15764 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
15765 CAN_Sgn.SignedSgn &= 0x0000FFFF;
15766 if (CAN_Sgn.SignedSgn >> 15) {
15767 CAN_Sgn.SignedSgn |= 0xFFFF0000;
15768 }
15769
15770 L4_MABX_B.SFunction1_o5_no = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
15771
15772 /* ...... "TDOP" (48|16, standard signal, signed int, little endian) */
15773 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
15774 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[7];
15775 CAN_Sgn.SignedSgn &= 0x0000FFFF;
15776 if (CAN_Sgn.SignedSgn >> 15) {
15777 CAN_Sgn.SignedSgn |= 0xFFFF0000;
15778 }
15779
15780 L4_MABX_B.SFunction1_o6_gq = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
15781 }
15782 }
15783 } else {
15784 /* set RX status to 0 because no new message has arrived */
15785 L4_MABX_B.SFunction1_o7_oj = 0.0;
15786 }
15787 }
15788 }
15789
15790 /* End of Outputs for SubSystem: '<S559>/GNSSDOPs_011' */
15791
15792 /* DataTypeConversion: '<S559>/Data Type Conversion8' */
15793 L4_MABX_B.RX_status_p = (L4_MABX_B.SFunction1_o7_oj != 0.0);
15794
15795 /* Outputs for Enabled SubSystem: '<S559>/GNSSDOPs_1' incorporates:
15796 * EnablePort: '<S561>/Enable'
15797 */
15798 /* Constant: '<S427>/Constant' */
15799 if (L4_MABX_P.Constant_Value_c > 0.0) {
15800 /* S-Function (rti_commonblock): '<S561>/S-Function1' */
15801 /* This comment workarounds a code generation problem */
15802
15803 /* dSPACE RTICAN RX Message Block: "GNSSDOPs_01" Id:435815169 */
15804 {
15805 UInt32 *CAN_Msg;
15806 static dsfloat time_old = 0.0;
15807
15808 /* Read status and timestamp info (previous message) */
15809 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0301].timestamp !=
15810 time_old) {
15811 /* ... save timestamp info for the calculation of the RX status
15812 during the consecutive sample hit*/
15813 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0301].
15814 timestamp;
15815
15816 /* ... set the processed flag to one */
15817 L4_MABX_B.SFunction1_o7_j = 1.0;
15818 L4_MABX_B.SFunction1_o8_mf = (real_T)
15819 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0301].timestamp;
15820 L4_MABX_B.SFunction1_o9_g4 = (real_T)
15821 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0301].deltatime;
15822 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0301].data;
15823
15824 /* Decode CAN message */
15825 {
15826 {
15827 rtican_Signal_t CAN_Sgn;
15828
15829 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
15830 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
15831 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15832 L4_MABX_B.SFunction1_o1_gi = ((real_T) CAN_Sgn.UnsignedSgn);
15833
15834 /* ...... "SetMode" (8|3, standard signal, unsigned int, little endian) */
15835 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
15836 CAN_Sgn.UnsignedSgn &= 0x00000007;
15837 L4_MABX_B.SFunction1_o2_j0 = ((real_T) CAN_Sgn.UnsignedSgn);
15838
15839 /* ...... "OpMode" (11|3, standard signal, unsigned int, little endian) */
15840 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
15841 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 3;
15842 CAN_Sgn.UnsignedSgn &= 0x00000007;
15843 L4_MABX_B.SFunction1_o3_i5 = ((real_T) CAN_Sgn.UnsignedSgn);
15844
15845 /* ...... "HDOP_" (16|16, standard signal, signed int, little endian) */
15846 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
15847 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
15848 CAN_Sgn.SignedSgn &= 0x0000FFFF;
15849 if (CAN_Sgn.SignedSgn >> 15) {
15850 CAN_Sgn.SignedSgn |= 0xFFFF0000;
15851 }
15852
15853 L4_MABX_B.SFunction1_o4_pd = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
15854
15855 /* ...... "VDOP" (32|16, standard signal, signed int, little endian) */
15856 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
15857 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
15858 CAN_Sgn.SignedSgn &= 0x0000FFFF;
15859 if (CAN_Sgn.SignedSgn >> 15) {
15860 CAN_Sgn.SignedSgn |= 0xFFFF0000;
15861 }
15862
15863 L4_MABX_B.SFunction1_o5_iw = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
15864
15865 /* ...... "TDOP" (48|16, standard signal, signed int, little endian) */
15866 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
15867 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[7];
15868 CAN_Sgn.SignedSgn &= 0x0000FFFF;
15869 if (CAN_Sgn.SignedSgn >> 15) {
15870 CAN_Sgn.SignedSgn |= 0xFFFF0000;
15871 }
15872
15873 L4_MABX_B.SFunction1_o6_gf = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
15874 }
15875 }
15876 } else {
15877 /* set RX status to 0 because no new message has arrived */
15878 L4_MABX_B.SFunction1_o7_j = 0.0;
15879 }
15880 }
15881 }
15882
15883 /* End of Outputs for SubSystem: '<S559>/GNSSDOPs_1' */
15884
15885 /* Switch: '<S559>/Switch' */
15886 if (L4_MABX_B.RX_status_p) {
15887 L4_MABX_B.HDOP_ = L4_MABX_B.SFunction1_o4_mb;
15888 } else {
15889 L4_MABX_B.HDOP_ = L4_MABX_B.SFunction1_o4_pd;
15890 }
15891
15892 /* Outputs for Atomic SubSystem: '<S65>/Task_20ms' */
15893 /* RateTransition: '<S382>/TmpRTBAtCheckHDOPInport1' */
15894 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
15895 L4_MABX_B.HDOP__f = L4_MABX_B.HDOP_;
15896 L4_MABX_B.FrontAxleSpeed_dv = L4_MABX_B.SFunction1_o1_os;
15897 L4_MABX_B.FrontAxleSpeed_dvq = L4_MABX_B.SFunction1_o1_os;
15898 L4_MABX_B.FrontAxleSpeed_dvqf = L4_MABX_B.SFunction1_o1_os;
15899 L4_MABX_B.TmpRTBAtVehHeadingInport1 = YawRate;
15900 }
15901
15902 /* End of RateTransition: '<S382>/TmpRTBAtCheckHDOPInport1' */
15903 /* End of Outputs for SubSystem: '<S65>/Task_20ms' */
15904
15905 /* Switch: '<S384>/Switch2' incorporates:
15906 * Constant: '<S384>/No Data'
15907 * Switch: '<S384>/Switch5'
15908 * Switch: '<S384>/Switch6'
15909 * Switch: '<S384>/Switch7'
15910 * Switch: '<S384>/Switch8'
15911 */
15912 if (RTMapsOk) {
15913 /* Gain: '<S384>/m//s_to_km//h' */
15914 L4_MABX_B.ms_to_kmh = L4_MABX_P.ms_to_kmh_Gain *
15915 L4_MABX_B.Decoder_o1.CurrentVelocity;
15916 CurrentVelocity_kph = L4_MABX_B.ms_to_kmh;
15917
15918 /* Gain: '<S384>/for_logging3' */
15919 L4_MABX_B.for_logging3 = L4_MABX_P.for_logging3_Gain *
15920 L4_MABX_B.Decoder_o1.CrosstrackError;
15921 CrosstrackError = L4_MABX_B.for_logging3;
15922
15923 /* Gain: '<S384>/for_logging4' */
15924 L4_MABX_B.for_logging4 = L4_MABX_P.for_logging4_Gain *
15925 L4_MABX_B.Decoder_o1.GPS_X;
15926 GPS_X = L4_MABX_B.for_logging4;
15927
15928 /* Gain: '<S384>/for_logging5' */
15929 L4_MABX_B.for_logging5 = L4_MABX_P.for_logging5_Gain *
15930 L4_MABX_B.Decoder_o1.GPS_Y;
15931 GPS_Y = L4_MABX_B.for_logging5;
15932
15933 /* Gain: '<S384>/for_logging6' */
15934 L4_MABX_B.for_logging6 = L4_MABX_P.for_logging6_Gain *
15935 L4_MABX_B.Decoder_o1.GPS_Time;
15936 GPS_Time = L4_MABX_B.for_logging6;
15937 } else {
15938 CurrentVelocity_kph = L4_MABX_P.NoData_Value;
15939 CrosstrackError = L4_MABX_P.NoData_Value;
15940 GPS_X = L4_MABX_P.NoData_Value;
15941 GPS_Y = L4_MABX_P.NoData_Value;
15942 GPS_Time = L4_MABX_P.NoData_Value;
15943 }
15944
15945 /* End of Switch: '<S384>/Switch2' */
15946
15947 /* S-Function (rti_commonblock): '<S394>/S-Function1' */
15948
15949 /* This comment workarounds a code generation problem */
15950
15951 /* End of Outputs for S-Function (rti_commonblock): '<S394>/S-Function1' */
15952
15953 /* S-Function (rti_commonblock): '<S400>/S-Function1' */
15954
15955 /* This comment workarounds a code generation problem */
15956
15957 /* End of Outputs for S-Function (rti_commonblock): '<S400>/S-Function1' */
15958
15959 /* S-Function (rti_commonblock): '<S386>/TRC Exclusion' */
15960 /* This comment workarounds a code generation problem */
15961
15962 /* S-Function (rti_commonblock): '<S387>/TRC Exclusion' */
15963 /* This comment workarounds a code generation problem */
15964
15965 /* UnitDelay: '<S3>/Unit_Delay' */
15966 L4_MABX_B.DesSteeringAngle = L4_MABX_DW.Unit_Delay_1_DSTATE;
15967 L4_MABX_B.Stanley_axleAngle2 = L4_MABX_DW.Unit_Delay_10_DSTATE;
15968 L4_MABX_B.SPN1760_GrossCombinationVehic_a = L4_MABX_DW.Unit_Delay_100_DSTATE;
15969 L4_MABX_B.ACCDistanceAlertSignal_d = L4_MABX_DW.Unit_Delay_101_DSTATE;
15970 L4_MABX_B.ForwardCollisionWarning_d = L4_MABX_DW.Unit_Delay_102_DSTATE;
15971 L4_MABX_B.SPN544_EngineReferenceTorque_i = L4_MABX_DW.Unit_Delay_103_DSTATE;
15972 L4_MABX_B.ROPEngCtrlActive = L4_MABX_DW.Unit_Delay_104_DSTATE;
15973 L4_MABX_B.ROPBrakeCtrlActive = L4_MABX_DW.Unit_Delay_105_DSTATE;
15974 L4_MABX_B.YCEngCtrlActive = L4_MABX_DW.Unit_Delay_106_DSTATE;
15975 L4_MABX_B.YCBrakeCtrlActive = L4_MABX_DW.Unit_Delay_107_DSTATE;
15976 L4_MABX_B.SPN1807_SteeringWheelAngle = L4_MABX_DW.Unit_Delay_108_DSTATE;
15977 L4_MABX_B.SPN1808_YawRate = L4_MABX_DW.Unit_Delay_109_DSTATE;
15978 L4_MABX_B.DesSteeringAngleTerm = L4_MABX_DW.Unit_Delay_11_DSTATE;
15979 L4_MABX_B.SPN1810_LongitudinalAcceleratio = L4_MABX_DW.Unit_Delay_110_DSTATE;
15980 L4_MABX_B.SteerWheelTurnCounter = L4_MABX_DW.Unit_Delay_111_DSTATE;
15981 L4_MABX_B.SteerWheelAngleSensorType = L4_MABX_DW.Unit_Delay_112_DSTATE;
15982 L4_MABX_B.LateralAcceleration = L4_MABX_DW.Unit_Delay_113_DSTATE;
15983 L4_MABX_B.BarometricPress = L4_MABX_DW.Unit_Delay_114_DSTATE;
15984 L4_MABX_B.AmbientAirTemp = L4_MABX_DW.Unit_Delay_115_DSTATE;
15985 L4_MABX_B.F_Truck1571_VIN_Match = L4_MABX_DW.Unit_Delay_116_DSTATE;
15986 L4_MABX_B.F_Truck166_VIN_Match = L4_MABX_DW.Unit_Delay_117_DSTATE;
15987 L4_MABX_B.PitchAngleExRange_k = L4_MABX_DW.Unit_Delay_118_DSTATE;
15988 L4_MABX_B.PX2_LanePosEstPosition = L4_MABX_DW.Unit_Delay_119_DSTATE;
15989 L4_MABX_B.DesSteeringDistTerm = L4_MABX_DW.Unit_Delay_12_DSTATE;
15990 L4_MABX_B.PX2_LanePosEstAngle = L4_MABX_DW.Unit_Delay_120_DSTATE;
15991 L4_MABX_B.PX2_LanePosEstNumPoints = L4_MABX_DW.Unit_Delay_121_DSTATE;
15992 L4_MABX_B.Latitude__h = L4_MABX_DW.Unit_Delay_122_DSTATE;
15993 L4_MABX_B.Longitude__k = L4_MABX_DW.Unit_Delay_123_DSTATE;
15994 L4_MABX_B.HDOP__h = L4_MABX_DW.Unit_Delay_124_DSTATE;
15995 L4_MABX_B.XPRControlMode_k = L4_MABX_DW.Unit_Delay_125_DSTATE;
15996 L4_MABX_B.XPRErrorState_l = L4_MABX_DW.Unit_Delay_126_DSTATE;
15997 L4_MABX_B.PressureP1_k = L4_MABX_DW.Unit_Delay_127_DSTATE;
15998 L4_MABX_B.PressureP4_n = L4_MABX_DW.Unit_Delay_128_DSTATE;
15999 L4_MABX_B.PressureP21_b = L4_MABX_DW.Unit_Delay_129_DSTATE;
16000 L4_MABX_B.numLanePoints = L4_MABX_DW.Unit_Delay_13_DSTATE;
16001 L4_MABX_B.PressureP22_h = L4_MABX_DW.Unit_Delay_130_DSTATE;
16002 L4_MABX_B.PressureP42_o = L4_MABX_DW.Unit_Delay_131_DSTATE;
16003 L4_MABX_B.ReAX_ActualHandwheelPos_j = L4_MABX_DW.Unit_Delay_132_DSTATE;
16004 L4_MABX_B.ReAX_EchoedSteerWheelPos_b = L4_MABX_DW.Unit_Delay_133_DSTATE;
16005 L4_MABX_B.RTMapsOk_m = L4_MABX_DW.Unit_Delay_134_DSTATE;
16006 L4_MABX_B.SupervisorMode_l = L4_MABX_DW.Unit_Delay_135_DSTATE;
16007 L4_MABX_B.CurrentAzimuth_rad_d = L4_MABX_DW.Unit_Delay_136_DSTATE;
16008 L4_MABX_B.TargetAzimuth_rad_n = L4_MABX_DW.Unit_Delay_137_DSTATE;
16009 L4_MABX_B.CurrentVelocity_kph_d = L4_MABX_DW.Unit_Delay_138_DSTATE;
16010 L4_MABX_B.TargetVelocity_kph_h = L4_MABX_DW.Unit_Delay_139_DSTATE;
16011 L4_MABX_B.rawPositionError = L4_MABX_DW.Unit_Delay_14_DSTATE;
16012 L4_MABX_B.Curvature_d = L4_MABX_DW.Unit_Delay_140_DSTATE;
16013 L4_MABX_B.CrosstrackError_b = L4_MABX_DW.Unit_Delay_141_DSTATE;
16014 L4_MABX_B.slewedPosError = L4_MABX_DW.Unit_Delay_15_DSTATE;
16015 L4_MABX_B.previewSteeringAngle = L4_MABX_DW.Unit_Delay_16_DSTATE;
16016 L4_MABX_B.APTC_Pedal_torque_dem_value = L4_MABX_DW.Unit_Delay_17_DSTATE;
16017 L4_MABX_B.APTC_arb_pedal_low_idl_sw = L4_MABX_DW.Unit_Delay_18_DSTATE;
16018 L4_MABX_B.APTC_arb_pedal_position = L4_MABX_DW.Unit_Delay_19_DSTATE;
16019 L4_MABX_B.DesSteeringPID_Dterm = L4_MABX_DW.Unit_Delay_2_DSTATE;
16020 L4_MABX_B.signal1 = L4_MABX_DW.Unit_Delay_20_DSTATE;
16021 L4_MABX_B.PID_output = L4_MABX_DW.Unit_Delay_21_DSTATE;
16022 L4_MABX_B.PID_output_unlim = L4_MABX_DW.Unit_Delay_22_DSTATE;
16023 L4_MABX_B.PID_control_error = L4_MABX_DW.Unit_Delay_23_DSTATE;
16024 L4_MABX_B.PID_p_term = L4_MABX_DW.Unit_Delay_24_DSTATE;
16025 L4_MABX_B.PID_i_term = L4_MABX_DW.Unit_Delay_25_DSTATE;
16026 L4_MABX_B.PID_d_term = L4_MABX_DW.Unit_Delay_26_DSTATE;
16027 L4_MABX_B.PID_hold_i_term_f = L4_MABX_DW.Unit_Delay_27_DSTATE;
16028 L4_MABX_B.ThrottlePID_Y = L4_MABX_DW.Unit_Delay_28_DSTATE;
16029 L4_MABX_B.EngineSpeedTarget_Y = L4_MABX_DW.Unit_Delay_29_DSTATE;
16030 L4_MABX_B.DesSteeringPID_Iterm = L4_MABX_DW.Unit_Delay_3_DSTATE;
16031 L4_MABX_B.F_Ignition_relay_command = L4_MABX_DW.Unit_Delay_30_DSTATE;
16032 L4_MABX_B.F_Inverter_relay_command = L4_MABX_DW.Unit_Delay_31_DSTATE;
16033 L4_MABX_B.F_MABX_relay_command = L4_MABX_DW.Unit_Delay_32_DSTATE;
16034 L4_MABX_B.F_Sensor_relay_command = L4_MABX_DW.Unit_Delay_33_DSTATE;
16035 L4_MABX_B.BrkPedArbBrakeSwitch = L4_MABX_DW.Unit_Delay_34_DSTATE;
16036 L4_MABX_B.Accel_rate_ms2 = L4_MABX_DW.Unit_Delay_35_DSTATE;
16037 L4_MABX_B.BrakingControlActive = L4_MABX_DW.Unit_Delay_36_DSTATE;
16038 L4_MABX_B.F_Hold_brakes_at_zero = L4_MABX_DW.Unit_Delay_37_DSTATE;
16039 L4_MABX_B.BrakingPID_Y = L4_MABX_DW.Unit_Delay_38_DSTATE;
16040 L4_MABX_B.BrakingPID_Y_Direct_Pressure = L4_MABX_DW.Unit_Delay_39_DSTATE;
16041 L4_MABX_B.DesSteeringPID_Pterm = L4_MABX_DW.Unit_Delay_4_DSTATE;
16042 L4_MABX_B.VSPD_TARGET_KPH_APV_i = L4_MABX_DW.Unit_Delay_40_DSTATE;
16043 L4_MABX_B.Vehicle_speed_target = L4_MABX_DW.Unit_Delay_41_DSTATE;
16044 L4_MABX_B.VSPD_HYST_KPH_APV = L4_MABX_DW.Unit_Delay_42_DSTATE;
16045 L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_APV = L4_MABX_DW.Unit_Delay_43_DSTATE;
16046 L4_MABX_B.ACCEL_LIM_MS2_APV = L4_MABX_DW.Unit_Delay_44_DSTATE;
16047 L4_MABX_B.AutonomousOutputEnabled_d = L4_MABX_DW.Unit_Delay_46_DSTATE;
16048 L4_MABX_B.DesSteeringPID_Y = L4_MABX_DW.Unit_Delay_5_DSTATE;
16049 L4_MABX_B.DesSteeringPID_e = L4_MABX_DW.Unit_Delay_6_DSTATE;
16050 L4_MABX_B.DeSteeringPID_Y2 = L4_MABX_DW.Unit_Delay_7_DSTATE;
16051 L4_MABX_B.CurvatureEst = L4_MABX_DW.Unit_Delay_8_DSTATE;
16052 L4_MABX_B.PedalPWMPos = L4_MABX_DW.Unit_Delay_82_DSTATE;
16053 L4_MABX_B.IgnitionKeySwitch_voltage_i = L4_MABX_DW.Unit_Delay_83_DSTATE;
16054 L4_MABX_B.BrakeSwitch_k = L4_MABX_DW.Unit_Delay_84_DSTATE;
16055 L4_MABX_B.Park_brake_switch = L4_MABX_DW.Unit_Delay_85_DSTATE;
16056 L4_MABX_B.CruiseCtrlEnableSwitch = L4_MABX_DW.Unit_Delay_86_DSTATE;
16057 L4_MABX_B.FrontAxleSpeed = L4_MABX_DW.Unit_Delay_87_DSTATE;
16058 L4_MABX_B.FrontAxleLeftWheelSpeed = L4_MABX_DW.Unit_Delay_88_DSTATE;
16059 L4_MABX_B.FrontAxleRightWheelSpeed = L4_MABX_DW.Unit_Delay_89_DSTATE;
16060 L4_MABX_B.Stanley_axleAngle = L4_MABX_DW.Unit_Delay_9_DSTATE;
16061 L4_MABX_B.EBSBrakeSwitch = L4_MABX_DW.Unit_Delay_90_DSTATE;
16062 L4_MABX_B.SPN524_TransSelectedGear_j = L4_MABX_DW.Unit_Delay_91_DSTATE;
16063 L4_MABX_B.SPN523_TransCurrentGear_j = L4_MABX_DW.Unit_Delay_92_DSTATE;
16064 L4_MABX_B.SPN526_TransActualGearRatio_j = L4_MABX_DW.Unit_Delay_93_DSTATE;
16065 L4_MABX_B.ActualEngPercentTorque = L4_MABX_DW.Unit_Delay_94_DSTATE;
16066 L4_MABX_B.ActlEngPrcntTrqueHighResolution = L4_MABX_DW.Unit_Delay_95_DSTATE;
16067 L4_MABX_B.EngSpeed = L4_MABX_DW.Unit_Delay_96_DSTATE;
16068 L4_MABX_B.DriversDemandEngPercentTorque = L4_MABX_DW.Unit_Delay_97_DSTATE;
16069 L4_MABX_B.SPN514_NominalFrictionPercent_p = L4_MABX_DW.Unit_Delay_98_DSTATE;
16070 L4_MABX_B.SPN2978_EstEngParasiticLosses_i = L4_MABX_DW.Unit_Delay_99_DSTATE;
16071
16072 /* DataTypeConversion: '<S512>/Data Type Conversion' */
16073 L4_MABX_B.DataTypeConversion_cx = L4_MABX_B.DataTypeConversion_mp[0];
16074
16075 /* DataTypeConversion: '<S512>/Data Type Conversion1' */
16076 L4_MABX_B.DataTypeConversion1_lr = L4_MABX_B.DataTypeConversion_mp[1];
16077
16078 /* ArithShift: '<S512>/Shift Arithmetic' */
16079 L4_MABX_B.ShiftArithmetic_k = (uint16_T)(L4_MABX_B.DataTypeConversion1_lr << 8);
16080
16081 /* S-Function (sfix_bitop): '<S539>/Operator' */
16082 L4_MABX_B.Operator_a5 = (uint16_T)(L4_MABX_B.DataTypeConversion_cx |
16083 L4_MABX_B.ShiftArithmetic_k);
16084
16085 /* DataTypeConversion: '<S539>/DataType' */
16086 L4_MABX_B.DataType_ks = L4_MABX_B.Operator_a5;
16087
16088 /* DataTypeConversion: '<S512>/Data Type Conversion2' */
16089 L4_MABX_B.DataTypeConversion2_k = L4_MABX_B.DataType_ks;
16090
16091 /* Product: '<S512>/Product' incorporates:
16092 * Constant: '<S512>/Constant'
16093 */
16094 L4_MABX_B.SPN188_EngineSpeedAtIdlePoint1 = L4_MABX_B.DataTypeConversion2_k *
16095 L4_MABX_P.Constant_Value_mk;
16096
16097 /* DataTypeConversion: '<S404>/Data Type Conversion' */
16098 L4_MABX_B.DataTypeConversion_g = L4_MABX_B.SPN188_EngineSpeedAtIdlePoint1;
16099
16100 /* DataTypeConversion: '<S519>/Data Type Conversion' */
16101 L4_MABX_B.DataTypeConversion_h = L4_MABX_B.DataTypeConversion_mp[2];
16102
16103 /* Sum: '<S519>/Add' incorporates:
16104 * Constant: '<S519>/Constant'
16105 */
16106 L4_MABX_B.SPN539_EnginePercentTorqueAtIdl = L4_MABX_B.DataTypeConversion_h +
16107 L4_MABX_P.Constant_Value_ob;
16108
16109 /* DataTypeConversion: '<S404>/Data Type Conversion1' */
16110 L4_MABX_B.DataTypeConversion1_l = L4_MABX_B.SPN539_EnginePercentTorqueAtIdl;
16111
16112 /* DataTypeConversion: '<S516>/Data Type Conversion' */
16113 L4_MABX_B.DataTypeConversion_b = L4_MABX_B.DataTypeConversion_mp[15];
16114
16115 /* DataTypeConversion: '<S516>/Data Type Conversion1' */
16116 L4_MABX_B.DataTypeConversion1_ip = L4_MABX_B.DataTypeConversion_mp[16];
16117
16118 /* ArithShift: '<S516>/Shift Arithmetic' */
16119 L4_MABX_B.ShiftArithmetic_n = (uint16_T)(L4_MABX_B.DataTypeConversion1_ip << 8);
16120
16121 /* S-Function (sfix_bitop): '<S541>/Operator' */
16122 L4_MABX_B.Operator_cz = (uint16_T)(L4_MABX_B.DataTypeConversion_b |
16123 L4_MABX_B.ShiftArithmetic_n);
16124
16125 /* DataTypeConversion: '<S541>/DataType' */
16126 L4_MABX_B.DataType_of = L4_MABX_B.Operator_cz;
16127
16128 /* DataTypeConversion: '<S516>/Data Type Conversion2' */
16129 L4_MABX_B.DataTypeConversion2_g = L4_MABX_B.DataType_of;
16130
16131 /* Product: '<S516>/Product' incorporates:
16132 * Constant: '<S516>/Constant'
16133 */
16134 L4_MABX_B.SPN532_EngineSpeedAtHighIdlePoi = L4_MABX_B.DataTypeConversion2_g *
16135 L4_MABX_P.Constant_Value_my;
16136
16137 /* DataTypeConversion: '<S404>/Data Type Conversion10' */
16138 L4_MABX_B.DataTypeConversion10 = L4_MABX_B.SPN532_EngineSpeedAtHighIdlePoi;
16139
16140 /* DataTypeConversion: '<S517>/Data Type Conversion1' */
16141 L4_MABX_B.DataTypeConversion1_o = L4_MABX_B.DataTypeConversion_mp[17];
16142
16143 /* DataTypeConversion: '<S517>/Data Type Conversion3' */
16144 L4_MABX_B.DataTypeConversion3_f5 = L4_MABX_B.DataTypeConversion_mp[18];
16145
16146 /* ArithShift: '<S517>/Shift Arithmetic' */
16147 L4_MABX_B.ShiftArithmetic_m = (uint16_T)(L4_MABX_B.DataTypeConversion3_f5 << 8);
16148
16149 /* S-Function (sfix_bitop): '<S542>/Operator' */
16150 L4_MABX_B.Operator_f = (uint16_T)(L4_MABX_B.DataTypeConversion1_o |
16151 L4_MABX_B.ShiftArithmetic_m);
16152
16153 /* DataTypeConversion: '<S542>/DataType' */
16154 L4_MABX_B.DataType_au = L4_MABX_B.Operator_f;
16155
16156 /* DataTypeConversion: '<S517>/Data Type Conversion2' */
16157 L4_MABX_B.DataTypeConversion2_e = L4_MABX_B.DataType_au;
16158
16159 /* Product: '<S517>/Product' incorporates:
16160 * Constant: '<S517>/Constant'
16161 */
16162 L4_MABX_B.SPN545_EngineGainKpOfTheEndspee = L4_MABX_B.DataTypeConversion2_e *
16163 L4_MABX_P.Constant_Value_h4;
16164
16165 /* DataTypeConversion: '<S404>/Data Type Conversion11' */
16166 L4_MABX_B.DataTypeConversion11 = L4_MABX_B.SPN545_EngineGainKpOfTheEndspee;
16167
16168 /* DataTypeConversion: '<S520>/Data Type Conversion1' */
16169 L4_MABX_B.DataTypeConversion1_o1 = L4_MABX_B.DataTypeConversion_mp[21];
16170
16171 /* DataTypeConversion: '<S520>/Data Type Conversion3' */
16172 L4_MABX_B.DataTypeConversion3_a = L4_MABX_B.DataTypeConversion_mp[22];
16173
16174 /* ArithShift: '<S520>/Shift Arithmetic' */
16175 L4_MABX_B.ShiftArithmetic_c = (uint16_T)(L4_MABX_B.DataTypeConversion3_a << 8);
16176
16177 /* S-Function (sfix_bitop): '<S544>/Operator' */
16178 L4_MABX_B.Operator_nk = (uint16_T)(L4_MABX_B.DataTypeConversion1_o1 |
16179 L4_MABX_B.ShiftArithmetic_c);
16180
16181 /* DataTypeConversion: '<S544>/DataType' */
16182 L4_MABX_B.DataType_al = L4_MABX_B.Operator_nk;
16183
16184 /* DataTypeConversion: '<S520>/Data Type Conversion2' */
16185 L4_MABX_B.DataTypeConversion2_l = L4_MABX_B.DataType_al;
16186
16187 /* Product: '<S520>/Product' incorporates:
16188 * Constant: '<S520>/Constant'
16189 */
16190 L4_MABX_B.SPN533_EngineMaximumMomentaryOv = L4_MABX_B.DataTypeConversion2_l *
16191 L4_MABX_P.Constant_Value_fu;
16192
16193 /* DataTypeConversion: '<S404>/Data Type Conversion13' */
16194 L4_MABX_B.DataTypeConversion13 = L4_MABX_B.SPN533_EngineMaximumMomentaryOv;
16195
16196 /* DataTypeConversion: '<S521>/Data Type Conversion2' */
16197 L4_MABX_B.DataTypeConversion2_c = L4_MABX_B.DataTypeConversion_mp[23];
16198
16199 /* Product: '<S521>/Product' incorporates:
16200 * Constant: '<S521>/Constant'
16201 */
16202 L4_MABX_B.SPN534_EngineMaximumMomentaryOv = L4_MABX_B.DataTypeConversion2_c *
16203 L4_MABX_P.Constant_Value_jk;
16204
16205 /* DataTypeConversion: '<S404>/Data Type Conversion14' */
16206 L4_MABX_B.DataTypeConversion14 = L4_MABX_B.SPN534_EngineMaximumMomentaryOv;
16207
16208 /* DataTypeConversion: '<S522>/Data Type Conversion2' */
16209 L4_MABX_B.DataTypeConversion2_ka = L4_MABX_B.DataTypeConversion_mp[24];
16210
16211 /* Product: '<S522>/Product' incorporates:
16212 * Constant: '<S522>/Constant'
16213 */
16214 L4_MABX_B.SPN535_EngineRequestedSpeedCont = L4_MABX_B.DataTypeConversion2_ka *
16215 L4_MABX_P.Constant_Value_o1;
16216
16217 /* DataTypeConversion: '<S404>/Data Type Conversion15' */
16218 L4_MABX_B.DataTypeConversion15 = L4_MABX_B.SPN535_EngineRequestedSpeedCont;
16219
16220 /* DataTypeConversion: '<S523>/Data Type Conversion2' */
16221 L4_MABX_B.DataTypeConversion2_lo = L4_MABX_B.DataTypeConversion_mp[25];
16222
16223 /* Product: '<S523>/Product' incorporates:
16224 * Constant: '<S523>/Constant'
16225 */
16226 L4_MABX_B.SPN536_EngineRequestedSpeedCont = L4_MABX_B.DataTypeConversion2_lo *
16227 L4_MABX_P.Constant_Value_da;
16228
16229 /* DataTypeConversion: '<S404>/Data Type Conversion16' */
16230 L4_MABX_B.DataTypeConversion16 = L4_MABX_B.SPN536_EngineRequestedSpeedCont;
16231
16232 /* DataTypeConversion: '<S524>/Data Type Conversion' */
16233 L4_MABX_B.DataTypeConversion_g5 = L4_MABX_B.DataTypeConversion_mp[26];
16234
16235 /* Sum: '<S524>/Add' incorporates:
16236 * Constant: '<S524>/Constant'
16237 */
16238 L4_MABX_B.SPN537_EngineRequestedTorqueCon = L4_MABX_B.DataTypeConversion_g5 +
16239 L4_MABX_P.Constant_Value_ib;
16240
16241 /* DataTypeConversion: '<S404>/Data Type Conversion17' */
16242 L4_MABX_B.DataTypeConversion17 = L4_MABX_B.SPN537_EngineRequestedTorqueCon;
16243
16244 /* DataTypeConversion: '<S525>/Data Type Conversion' */
16245 L4_MABX_B.DataTypeConversion_p = L4_MABX_B.DataTypeConversion_mp[27];
16246
16247 /* Sum: '<S525>/Add' incorporates:
16248 * Constant: '<S525>/Constant'
16249 */
16250 L4_MABX_B.SPN538_EngineRequestedTorqueCon = L4_MABX_B.DataTypeConversion_p +
16251 L4_MABX_P.Constant_Value_dl;
16252
16253 /* DataTypeConversion: '<S404>/Data Type Conversion18' */
16254 L4_MABX_B.DataTypeConversion18 = L4_MABX_B.SPN538_EngineRequestedTorqueCon;
16255
16256 /* DataTypeConversion: '<S526>/Data Type Conversion1' */
16257 L4_MABX_B.DataTypeConversion1_a2 = L4_MABX_B.DataTypeConversion_mp[28];
16258
16259 /* DataTypeConversion: '<S526>/Data Type Conversion3' */
16260 L4_MABX_B.DataTypeConversion3_fy = L4_MABX_B.DataTypeConversion_mp[29];
16261
16262 /* ArithShift: '<S526>/Shift Arithmetic' */
16263 L4_MABX_B.ShiftArithmetic_ch = (uint16_T)(L4_MABX_B.DataTypeConversion3_fy <<
16264 8);
16265
16266 /* S-Function (sfix_bitop): '<S545>/Operator' */
16267 L4_MABX_B.Operator_p = (uint16_T)(L4_MABX_B.DataTypeConversion1_a2 |
16268 L4_MABX_B.ShiftArithmetic_ch);
16269
16270 /* DataTypeConversion: '<S545>/DataType' */
16271 L4_MABX_B.DataType_ey = L4_MABX_B.Operator_p;
16272
16273 /* DataTypeConversion: '<S526>/Data Type Conversion2' */
16274 L4_MABX_B.DataTypeConversion2_f = L4_MABX_B.DataType_ey;
16275
16276 /* Product: '<S526>/Product' incorporates:
16277 * Constant: '<S526>/Constant'
16278 */
16279 L4_MABX_B.SPN1712_EngRequestedSpeedCtrlRn = L4_MABX_B.DataTypeConversion2_f *
16280 L4_MABX_P.Constant_Value_mp;
16281
16282 /* DataTypeConversion: '<S404>/Data Type Conversion19' */
16283 L4_MABX_B.DataTypeConversion19 = L4_MABX_B.SPN1712_EngRequestedSpeedCtrlRn;
16284
16285 /* DataTypeConversion: '<S534>/Data Type Conversion' */
16286 L4_MABX_B.DataTypeConversion_iv = L4_MABX_B.DataTypeConversion_mp[3];
16287
16288 /* DataTypeConversion: '<S534>/Data Type Conversion1' */
16289 L4_MABX_B.DataTypeConversion1_c3 = L4_MABX_B.DataTypeConversion_mp[4];
16290
16291 /* ArithShift: '<S534>/Shift Arithmetic' */
16292 L4_MABX_B.ShiftArithmetic_ns = (uint16_T)(L4_MABX_B.DataTypeConversion1_c3 <<
16293 8);
16294
16295 /* S-Function (sfix_bitop): '<S548>/Operator' */
16296 L4_MABX_B.Operator_d3 = (uint16_T)(L4_MABX_B.DataTypeConversion_iv |
16297 L4_MABX_B.ShiftArithmetic_ns);
16298
16299 /* DataTypeConversion: '<S548>/DataType' */
16300 L4_MABX_B.DataType_pxb = L4_MABX_B.Operator_d3;
16301
16302 /* DataTypeConversion: '<S534>/Data Type Conversion2' */
16303 L4_MABX_B.DataTypeConversion2_ld = L4_MABX_B.DataType_pxb;
16304
16305 /* Product: '<S534>/Product' incorporates:
16306 * Constant: '<S534>/Constant'
16307 */
16308 L4_MABX_B.SPN528_EngineSpeedAtPoint2 = L4_MABX_B.DataTypeConversion2_ld *
16309 L4_MABX_P.Constant_Value_l;
16310
16311 /* DataTypeConversion: '<S404>/Data Type Conversion2' */
16312 L4_MABX_B.DataTypeConversion2_ko = L4_MABX_B.SPN528_EngineSpeedAtPoint2;
16313
16314 /* DataTypeConversion: '<S527>/Data Type Conversion1' */
16315 L4_MABX_B.DataTypeConversion1_j = L4_MABX_B.DataTypeConversion_mp[30];
16316
16317 /* DataTypeConversion: '<S527>/Data Type Conversion3' */
16318 L4_MABX_B.DataTypeConversion3_o = L4_MABX_B.DataTypeConversion_mp[31];
16319
16320 /* ArithShift: '<S527>/Shift Arithmetic' */
16321 L4_MABX_B.ShiftArithmetic_f = (uint16_T)(L4_MABX_B.DataTypeConversion3_o << 8);
16322
16323 /* S-Function (sfix_bitop): '<S546>/Operator' */
16324 L4_MABX_B.Operator_d2 = (uint16_T)(L4_MABX_B.DataTypeConversion1_j |
16325 L4_MABX_B.ShiftArithmetic_f);
16326
16327 /* DataTypeConversion: '<S546>/DataType' */
16328 L4_MABX_B.DataType_g = L4_MABX_B.Operator_d2;
16329
16330 /* DataTypeConversion: '<S527>/Data Type Conversion2' */
16331 L4_MABX_B.DataTypeConversion2_c0 = L4_MABX_B.DataType_g;
16332
16333 /* Product: '<S527>/Product' incorporates:
16334 * Constant: '<S527>/Constant'
16335 */
16336 L4_MABX_B.SPN1794_EngineMomentOfInertia = L4_MABX_B.DataTypeConversion2_c0 *
16337 L4_MABX_P.Constant_Value_bw;
16338
16339 /* DataTypeConversion: '<S404>/Data Type Conversion20' */
16340 L4_MABX_B.DataTypeConversion20 = L4_MABX_B.SPN1794_EngineMomentOfInertia;
16341
16342 /* DataTypeConversion: '<S528>/Data Type Conversion' */
16343 L4_MABX_B.DataTypeConversion_kt = L4_MABX_B.DataTypeConversion_mp[32];
16344
16345 /* DataTypeConversion: '<S528>/Data Type Conversion1' */
16346 L4_MABX_B.DataTypeConversion1_gk = L4_MABX_B.DataTypeConversion_mp[33];
16347
16348 /* ArithShift: '<S528>/Shift Arithmetic' */
16349 L4_MABX_B.ShiftArithmetic_j = (uint16_T)(L4_MABX_B.DataTypeConversion1_gk << 8);
16350
16351 /* S-Function (sfix_bitop): '<S547>/Operator' */
16352 L4_MABX_B.Operator_po = (uint16_T)(L4_MABX_B.DataTypeConversion_kt |
16353 L4_MABX_B.ShiftArithmetic_j);
16354
16355 /* DataTypeConversion: '<S547>/DataType' */
16356 L4_MABX_B.DataType_by = L4_MABX_B.Operator_po;
16357
16358 /* DataTypeConversion: '<S528>/Data Type Conversion2' */
16359 L4_MABX_B.SPN1846_EngineDefaultTorqueLimi = L4_MABX_B.DataType_by;
16360
16361 /* DataTypeConversion: '<S404>/Data Type Conversion21' */
16362 L4_MABX_B.DataTypeConversion21 = L4_MABX_B.SPN1846_EngineDefaultTorqueLimi;
16363
16364 /* DataTypeConversion: '<S404>/Data Type Conversion22' */
16365 L4_MABX_B.DataTypeConversion22 = L4_MABX_B.DataTypeConversion_mp[34];
16366
16367 /* DataTypeConversion: '<S404>/Data Type Conversion23' */
16368 L4_MABX_B.DataTypeConversion23 = L4_MABX_B.DataTypeConversion_mp[35];
16369
16370 /* DataTypeConversion: '<S404>/Data Type Conversion24' */
16371 L4_MABX_B.DataTypeConversion24 = L4_MABX_B.DataTypeConversion_mp[36];
16372
16373 /* DataTypeConversion: '<S404>/Data Type Conversion25' */
16374 L4_MABX_B.DataTypeConversion25 = L4_MABX_B.DataTypeConversion_mp[37];
16375
16376 /* DataTypeConversion: '<S404>/Data Type Conversion26' */
16377 L4_MABX_B.DataTypeConversion26 = L4_MABX_B.DataTypeConversion_mp[38];
16378
16379 /* DataTypeConversion: '<S535>/Data Type Conversion' */
16380 L4_MABX_B.DataTypeConversion_j = L4_MABX_B.DataTypeConversion_mp[5];
16381
16382 /* Sum: '<S535>/Add' incorporates:
16383 * Constant: '<S535>/Constant'
16384 */
16385 L4_MABX_B.SPN540_EnginePercentTorqueAtPoi = L4_MABX_B.DataTypeConversion_j +
16386 L4_MABX_P.Constant_Value_eh;
16387
16388 /* DataTypeConversion: '<S404>/Data Type Conversion3' */
16389 L4_MABX_B.DataTypeConversion3 = L4_MABX_B.SPN540_EnginePercentTorqueAtPoi;
16390
16391 /* DataTypeConversion: '<S536>/Data Type Conversion' */
16392 L4_MABX_B.DataTypeConversion_a = L4_MABX_B.DataTypeConversion_mp[6];
16393
16394 /* DataTypeConversion: '<S536>/Data Type Conversion1' */
16395 L4_MABX_B.DataTypeConversion1_hn = L4_MABX_B.DataTypeConversion_mp[7];
16396
16397 /* ArithShift: '<S536>/Shift Arithmetic' */
16398 L4_MABX_B.ShiftArithmetic_nm = (uint16_T)(L4_MABX_B.DataTypeConversion1_hn <<
16399 8);
16400
16401 /* S-Function (sfix_bitop): '<S549>/Operator' */
16402 L4_MABX_B.Operator_m1 = (uint16_T)(L4_MABX_B.DataTypeConversion_a |
16403 L4_MABX_B.ShiftArithmetic_nm);
16404
16405 /* DataTypeConversion: '<S549>/DataType' */
16406 L4_MABX_B.DataType_hs = L4_MABX_B.Operator_m1;
16407
16408 /* DataTypeConversion: '<S536>/Data Type Conversion2' */
16409 L4_MABX_B.DataTypeConversion2_el = L4_MABX_B.DataType_hs;
16410
16411 /* Product: '<S536>/Product' incorporates:
16412 * Constant: '<S536>/Constant'
16413 */
16414 L4_MABX_B.SPN529_EngineSpeedAtPoint3 = L4_MABX_B.DataTypeConversion2_el *
16415 L4_MABX_P.Constant_Value_kc;
16416
16417 /* DataTypeConversion: '<S404>/Data Type Conversion4' */
16418 L4_MABX_B.DataTypeConversion4 = L4_MABX_B.SPN529_EngineSpeedAtPoint3;
16419
16420 /* DataTypeConversion: '<S537>/Data Type Conversion' */
16421 L4_MABX_B.DataTypeConversion_o = L4_MABX_B.DataTypeConversion_mp[8];
16422
16423 /* Sum: '<S537>/Add' incorporates:
16424 * Constant: '<S537>/Constant'
16425 */
16426 L4_MABX_B.SPN541_EnginePercentTorqueAtPoi = L4_MABX_B.DataTypeConversion_o +
16427 L4_MABX_P.Constant_Value_ad;
16428
16429 /* DataTypeConversion: '<S404>/Data Type Conversion5' */
16430 L4_MABX_B.DataTypeConversion5 = L4_MABX_B.SPN541_EnginePercentTorqueAtPoi;
16431
16432 /* DataTypeConversion: '<S538>/Data Type Conversion' */
16433 L4_MABX_B.DataTypeConversion_cc = L4_MABX_B.DataTypeConversion_mp[9];
16434
16435 /* DataTypeConversion: '<S538>/Data Type Conversion1' */
16436 L4_MABX_B.DataTypeConversion1_nv = L4_MABX_B.DataTypeConversion_mp[10];
16437
16438 /* ArithShift: '<S538>/Shift Arithmetic' */
16439 L4_MABX_B.ShiftArithmetic_p = (uint16_T)(L4_MABX_B.DataTypeConversion1_nv << 8);
16440
16441 /* S-Function (sfix_bitop): '<S550>/Operator' */
16442 L4_MABX_B.Operator_bv = (uint16_T)(L4_MABX_B.DataTypeConversion_cc |
16443 L4_MABX_B.ShiftArithmetic_p);
16444
16445 /* DataTypeConversion: '<S550>/DataType' */
16446 L4_MABX_B.DataType_hd = L4_MABX_B.Operator_bv;
16447
16448 /* DataTypeConversion: '<S538>/Data Type Conversion2' */
16449 L4_MABX_B.DataTypeConversion2_h = L4_MABX_B.DataType_hd;
16450
16451 /* Product: '<S538>/Product' incorporates:
16452 * Constant: '<S538>/Constant'
16453 */
16454 L4_MABX_B.SPN530_EngineSpeedAtPoint4 = L4_MABX_B.DataTypeConversion2_h *
16455 L4_MABX_P.Constant_Value_cs;
16456
16457 /* DataTypeConversion: '<S404>/Data Type Conversion6' */
16458 L4_MABX_B.DataTypeConversion6 = L4_MABX_B.SPN530_EngineSpeedAtPoint4;
16459
16460 /* DataTypeConversion: '<S513>/Data Type Conversion' */
16461 L4_MABX_B.DataTypeConversion_jj = L4_MABX_B.DataTypeConversion_mp[11];
16462
16463 /* Sum: '<S513>/Add' incorporates:
16464 * Constant: '<S513>/Constant'
16465 */
16466 L4_MABX_B.SPN542_EnginePercentTorqueAtPoi = L4_MABX_B.DataTypeConversion_jj +
16467 L4_MABX_P.Constant_Value_ds;
16468
16469 /* DataTypeConversion: '<S404>/Data Type Conversion7' */
16470 L4_MABX_B.DataTypeConversion7 = L4_MABX_B.SPN542_EnginePercentTorqueAtPoi;
16471
16472 /* DataTypeConversion: '<S514>/Data Type Conversion' */
16473 L4_MABX_B.DataTypeConversion_l2 = L4_MABX_B.DataTypeConversion_mp[12];
16474
16475 /* DataTypeConversion: '<S514>/Data Type Conversion1' */
16476 L4_MABX_B.DataTypeConversion1_f = L4_MABX_B.DataTypeConversion_mp[13];
16477
16478 /* ArithShift: '<S514>/Shift Arithmetic' */
16479 L4_MABX_B.ShiftArithmetic_k4 = (uint16_T)(L4_MABX_B.DataTypeConversion1_f << 8);
16480
16481 /* S-Function (sfix_bitop): '<S540>/Operator' */
16482 L4_MABX_B.Operator_o = (uint16_T)(L4_MABX_B.DataTypeConversion_l2 |
16483 L4_MABX_B.ShiftArithmetic_k4);
16484
16485 /* DataTypeConversion: '<S540>/DataType' */
16486 L4_MABX_B.DataType_j5 = L4_MABX_B.Operator_o;
16487
16488 /* DataTypeConversion: '<S514>/Data Type Conversion2' */
16489 L4_MABX_B.DataTypeConversion2_p = L4_MABX_B.DataType_j5;
16490
16491 /* Product: '<S514>/Product' incorporates:
16492 * Constant: '<S514>/Constant'
16493 */
16494 L4_MABX_B.SPN531_EngineSpeedAtPoint5 = L4_MABX_B.DataTypeConversion2_p *
16495 L4_MABX_P.Constant_Value_bi;
16496
16497 /* DataTypeConversion: '<S404>/Data Type Conversion8' */
16498 L4_MABX_B.DataTypeConversion8 = L4_MABX_B.SPN531_EngineSpeedAtPoint5;
16499
16500 /* DataTypeConversion: '<S515>/Data Type Conversion' */
16501 L4_MABX_B.DataTypeConversion_k = L4_MABX_B.DataTypeConversion_mp[14];
16502
16503 /* Sum: '<S515>/Add' incorporates:
16504 * Constant: '<S515>/Constant'
16505 */
16506 L4_MABX_B.SPN543_EnginePercentTorqueAtPoi = L4_MABX_B.DataTypeConversion_k +
16507 L4_MABX_P.Constant_Value_ci;
16508
16509 /* DataTypeConversion: '<S404>/Data Type Conversion9' */
16510 L4_MABX_B.DataTypeConversion9 = L4_MABX_B.SPN543_EnginePercentTorqueAtPoi;
16511
16512 /* DataTypeConversion: '<S461>/Data Type Conversion8' */
16513 L4_MABX_B.RX_status_g1 = (L4_MABX_B.SFunction1_o9_ca != 0.0);
16514
16515 /* MultiPortSwitch: '<S407>/Multiport_Switch' */
16516 L4_MABX_B.RX_status_i = L4_MABX_B.RX_status_g1;
16517
16518 /* DataTypeConversion: '<S461>/Data Type Conversion9' */
16519 L4_MABX_B.RX_time = L4_MABX_B.SFunction1_o10_n2;
16520
16521 /* MultiPortSwitch: '<S407>/Multiport_Switch' */
16522 L4_MABX_B.RX_time_i = L4_MABX_B.RX_time;
16523
16524 /* DataTypeConversion: '<S461>/Data Type Conversion10' */
16525 L4_MABX_B.RX_delta_time = L4_MABX_B.SFunction1_o11_e3;
16526
16527 /* MultiPortSwitch: '<S407>/Multiport_Switch' */
16528 L4_MABX_B.RX_delta_time_j = L4_MABX_B.RX_delta_time;
16529
16530 /* RelationalOperator: '<S465>/Operator' incorporates:
16531 * Constant: '<S407>/Constant'
16532 * Constant: '<S462>/Constant1'
16533 */
16534 L4_MABX_B.Operator_lq = (L4_MABX_P.Constant_Value_fl ==
16535 L4_MABX_P.Constant1_Value_fs);
16536
16537 /* RelationalOperator: '<S466>/Operator' incorporates:
16538 * Constant: '<S407>/Constant'
16539 * Constant: '<S462>/Constant2'
16540 */
16541 L4_MABX_B.Operator_gj = (L4_MABX_P.Constant_Value_fl ==
16542 L4_MABX_P.Constant2_Value_as);
16543
16544 /* RelationalOperator: '<S467>/Operator' incorporates:
16545 * Constant: '<S407>/Constant'
16546 * Constant: '<S462>/Constant3'
16547 */
16548 L4_MABX_B.Operator_ht = (L4_MABX_P.Constant_Value_fl ==
16549 L4_MABX_P.Constant3_Value_lu);
16550
16551 /* RelationalOperator: '<S468>/Operator' incorporates:
16552 * Constant: '<S407>/Constant'
16553 * Constant: '<S462>/Constant4'
16554 */
16555 L4_MABX_B.Operator_it = (L4_MABX_P.Constant_Value_fl ==
16556 L4_MABX_P.Constant4_Value_k);
16557
16558 /* RelationalOperator: '<S469>/Operator' incorporates:
16559 * Constant: '<S407>/Constant'
16560 * Constant: '<S462>/Constant5'
16561 */
16562 L4_MABX_B.Operator_nc = (L4_MABX_P.Constant_Value_fl ==
16563 L4_MABX_P.Constant5_Value_g);
16564
16565 /* DataTypeConversion: '<S470>/Data Type Conversion9' */
16566 L4_MABX_B.RX_time_j = L4_MABX_B.SFunction1_o10_is;
16567
16568 /* MultiPortSwitch: '<S408>/Multiport_Switch' */
16569 L4_MABX_B.RX_time_c = L4_MABX_B.RX_time_j;
16570
16571 /* DataTypeConversion: '<S470>/Data Type Conversion10' */
16572 L4_MABX_B.RX_delta_time_k = L4_MABX_B.SFunction1_o11_c;
16573
16574 /* MultiPortSwitch: '<S408>/Multiport_Switch' */
16575 L4_MABX_B.RX_delta_time_m = L4_MABX_B.RX_delta_time_k;
16576
16577 /* RelationalOperator: '<S474>/Operator' incorporates:
16578 * Constant: '<S408>/Constant'
16579 * Constant: '<S471>/Constant1'
16580 */
16581 L4_MABX_B.Operator_n2 = (L4_MABX_P.Constant_Value_hi ==
16582 L4_MABX_P.Constant1_Value_je);
16583
16584 /* RelationalOperator: '<S475>/Operator' incorporates:
16585 * Constant: '<S408>/Constant'
16586 * Constant: '<S471>/Constant2'
16587 */
16588 L4_MABX_B.Operator_lc = (L4_MABX_P.Constant_Value_hi ==
16589 L4_MABX_P.Constant2_Value_d3);
16590
16591 /* RelationalOperator: '<S476>/Operator' incorporates:
16592 * Constant: '<S408>/Constant'
16593 * Constant: '<S471>/Constant3'
16594 */
16595 L4_MABX_B.Operator_l4 = (L4_MABX_P.Constant_Value_hi ==
16596 L4_MABX_P.Constant3_Value_i);
16597
16598 /* RelationalOperator: '<S477>/Operator' incorporates:
16599 * Constant: '<S408>/Constant'
16600 * Constant: '<S471>/Constant4'
16601 */
16602 L4_MABX_B.Operator_ne = (L4_MABX_P.Constant_Value_hi ==
16603 L4_MABX_P.Constant4_Value_bj);
16604
16605 /* RelationalOperator: '<S478>/Operator' incorporates:
16606 * Constant: '<S408>/Constant'
16607 * Constant: '<S471>/Constant5'
16608 */
16609 L4_MABX_B.Operator_ff = (L4_MABX_P.Constant_Value_hi ==
16610 L4_MABX_P.Constant5_Value_bz);
16611
16612 /* DataTypeConversion: '<S479>/Data Type Conversion1' */
16613 L4_MABX_B.SpeedOfForwardVehicle = L4_MABX_B.SFunction1_o1_mb;
16614
16615 /* DataTypeConversion: '<S479>/Data Type Conversion10' */
16616 L4_MABX_B.RX_delta_time_jd = L4_MABX_B.SFunction1_o13_mf;
16617
16618 /* DataTypeConversion: '<S479>/Data Type Conversion11' */
16619 L4_MABX_B.ACCSystemShutoffWarning = L4_MABX_B.SFunction1_o8_jl;
16620
16621 /* DataTypeConversion: '<S479>/Data Type Conversion2' */
16622 L4_MABX_B.DistanceToForwardVehicle = L4_MABX_B.SFunction1_o2_lk;
16623
16624 /* DataTypeConversion: '<S479>/Data Type Conversion3' */
16625 L4_MABX_B.AdaptiveCruiseCtrlSetSpeed = L4_MABX_B.SFunction1_o3_hy;
16626
16627 /* DataTypeConversion: '<S479>/Data Type Conversion4' */
16628 L4_MABX_B.AdaptiveCruiseCtrlMode = L4_MABX_B.SFunction1_o4_ngb;
16629
16630 /* DataTypeConversion: '<S479>/Data Type Conversion5' */
16631 L4_MABX_B.AdptveCruiseCtrlSetDistanceMode = L4_MABX_B.SFunction1_o5_mt;
16632
16633 /* DataTypeConversion: '<S479>/Data Type Conversion6' */
16634 L4_MABX_B.RoadCurvature = L4_MABX_B.SFunction1_o6_jn;
16635
16636 /* DataTypeConversion: '<S479>/Data Type Conversion7' */
16637 L4_MABX_B.ACCTargetDetected = L4_MABX_B.SFunction1_o7_ojc;
16638
16639 /* DataTypeConversion: '<S479>/Data Type Conversion8' */
16640 L4_MABX_B.RX_status_n = (L4_MABX_B.SFunction1_o11_a != 0.0);
16641
16642 /* DataTypeConversion: '<S479>/Data Type Conversion9' */
16643 L4_MABX_B.RX_time_h = L4_MABX_B.SFunction1_o12_h;
16644
16645 /* Outputs for Enabled SubSystem: '<S481>/AEBS1_A0' incorporates:
16646 * EnablePort: '<S482>/Enable'
16647 */
16648 /* Constant: '<S410>/Constant' */
16649 if (L4_MABX_P.Constant_Value_lu) {
16650 /* S-Function (rti_commonblock): '<S482>/S-Function1' */
16651 /* This comment workarounds a code generation problem */
16652
16653 /* dSPACE RTICAN RX Message Block: "AEBS1_A0" Id:217067306 */
16654 {
16655 UInt32 *CAN_Msg;
16656 static dsfloat time_old = 0.0;
16657
16658 /* Read status and timestamp info (previous message) */
16659 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02F2A].timestamp !=
16660 time_old) {
16661 /* ... save timestamp info for the calculation of the RX status
16662 during the consecutive sample hit*/
16663 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02F2A].
16664 timestamp;
16665
16666 /* ... set the processed flag to one */
16667 L4_MABX_B.SFunction1_o6_l = 1.0;
16668 L4_MABX_B.SFunction1_o7_a = (real_T)
16669 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02F2A].timestamp;
16670 L4_MABX_B.SFunction1_o8_if = (real_T)
16671 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02F2A].deltatime;
16672 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02F2A].data;
16673
16674 /* Decode CAN message */
16675 {
16676 {
16677 rtican_Signal_t CAN_Sgn;
16678
16679 /* ...... "AdvEmergencyBrkSysState" (0|4, standard signal, unsigned int, little endian) */
16680 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
16681 CAN_Sgn.UnsignedSgn &= 0x0000000F;
16682 L4_MABX_B.SFunction1_o1_ea = ((real_T) CAN_Sgn.UnsignedSgn);
16683
16684 /* ...... "CollisionWarningLevel" (4|4, standard signal, unsigned int, little endian) */
16685 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
16686 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
16687 CAN_Sgn.UnsignedSgn &= 0x0000000F;
16688 L4_MABX_B.SFunction1_o2_gq = ((real_T) CAN_Sgn.UnsignedSgn);
16689
16690 /* ...... "RelObjctDetForAdvEmergBrakingSys" (8|3, standard signal, unsigned int, little endian) */
16691 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
16692 CAN_Sgn.UnsignedSgn &= 0x00000007;
16693 L4_MABX_B.SFunction1_o3_ewv = ((real_T) CAN_Sgn.UnsignedSgn);
16694
16695 /* ...... "BendOffProbabOfRelevantObject" (12|3, standard signal, unsigned int, little endian) */
16696 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
16697 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
16698 CAN_Sgn.UnsignedSgn &= 0x00000007;
16699 L4_MABX_B.SFunction1_o4_gc = ((real_T) CAN_Sgn.UnsignedSgn);
16700
16701 /* ...... "TimeToCollisionWithRelevantObj" (16|8, standard signal, unsigned int, little endian) */
16702 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
16703 CAN_Sgn.UnsignedSgn &= 0x000000FF;
16704 L4_MABX_B.SFunction1_o5_aj = ((real_T) CAN_Sgn.UnsignedSgn);
16705 }
16706 }
16707 } else {
16708 /* set RX status to 0 because no new message has arrived */
16709 L4_MABX_B.SFunction1_o6_l = 0.0;
16710 }
16711 }
16712 }
16713
16714 /* End of Constant: '<S410>/Constant' */
16715 /* End of Outputs for SubSystem: '<S481>/AEBS1_A0' */
16716
16717 /* DataTypeConversion: '<S481>/Data Type Conversion10' */
16718 L4_MABX_B.RX_delta_time_a = L4_MABX_B.SFunction1_o8_if;
16719
16720 /* DataTypeConversion: '<S481>/Data Type Conversion8' */
16721 L4_MABX_B.RX_status_ir = (L4_MABX_B.SFunction1_o6_l != 0.0);
16722
16723 /* DataTypeConversion: '<S481>/Data Type Conversion9' */
16724 L4_MABX_B.RX_time_a = L4_MABX_B.SFunction1_o7_a;
16725
16726 /* DataTypeConversion: '<S483>/Data Type Conversion10' */
16727 L4_MABX_B.RX_delta_time_f = L4_MABX_B.SFunction1_o11_em;
16728
16729 /* DataTypeConversion: '<S483>/Data Type Conversion8' */
16730 L4_MABX_B.RX_status_b = (L4_MABX_B.SFunction1_o9_hq5 != 0.0);
16731
16732 /* DataTypeConversion: '<S483>/Data Type Conversion9' */
16733 L4_MABX_B.RX_time_n = L4_MABX_B.SFunction1_o10_f;
16734
16735 /* DataTypeConversion: '<S485>/Data Type Conversion10' */
16736 L4_MABX_B.RX_delta_time_b = L4_MABX_B.SFunction1_o8_d;
16737
16738 /* DataTypeConversion: '<S485>/Data Type Conversion8' */
16739 L4_MABX_B.RX_status_no = (L4_MABX_B.SFunction1_o6_f0 != 0.0);
16740
16741 /* DataTypeConversion: '<S485>/Data Type Conversion9' */
16742 L4_MABX_B.RX_time_f = L4_MABX_B.SFunction1_o7_ee;
16743
16744 /* Outputs for Enabled SubSystem: '<S487>/B2' incorporates:
16745 * EnablePort: '<S488>/Enable'
16746 */
16747 /* Constant: '<S413>/Constant' */
16748 if (L4_MABX_P.Constant_Value_b2 > 0.0) {
16749 /* S-Function (rti_commonblock): '<S488>/S-Function1' */
16750 /* This comment workarounds a code generation problem */
16751
16752 /* dSPACE RTICAN RX Message Block: "B2" Id:418451505 */
16753 {
16754 UInt32 *CAN_Msg;
16755 static dsfloat time_old = 0.0;
16756
16757 /* Read status and timestamp info (previous message) */
16758 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F11031].timestamp !=
16759 time_old) {
16760 /* ... save timestamp info for the calculation of the RX status
16761 during the consecutive sample hit*/
16762 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F11031].
16763 timestamp;
16764
16765 /* ... set the processed flag to one */
16766 L4_MABX_B.SFunction1_o3_ig = 1.0;
16767 L4_MABX_B.SFunction1_o4_fo = (real_T)
16768 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F11031].timestamp;
16769 L4_MABX_B.SFunction1_o5_dt = (real_T)
16770 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F11031].deltatime;
16771 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F11031].data;
16772
16773 /* Decode CAN message */
16774 {
16775 {
16776 rtican_Signal_t CAN_Sgn;
16777
16778 /* ...... "BrakeAppPressDemanded" (0|16, standard signal, unsigned int, little endian) */
16779 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
16780 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
16781 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
16782 L4_MABX_B.SFunction1_o1_pf = 0.1 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
16783
16784 /* ...... "BrakeSwitch2" (16|2, standard signal, unsigned int, little endian) */
16785 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
16786 CAN_Sgn.UnsignedSgn &= 0x00000003;
16787 L4_MABX_B.SFunction1_o2_ny = ((real_T) CAN_Sgn.UnsignedSgn);
16788 }
16789 }
16790 } else {
16791 /* set RX status to 0 because no new message has arrived */
16792 L4_MABX_B.SFunction1_o3_ig = 0.0;
16793 }
16794 }
16795 }
16796
16797 /* End of Constant: '<S413>/Constant' */
16798 /* End of Outputs for SubSystem: '<S487>/B2' */
16799
16800 /* DataTypeConversion: '<S487>/Data Type Conversion10' */
16801 L4_MABX_B.RX_delta_time_h = L4_MABX_B.SFunction1_o5_dt;
16802
16803 /* DataTypeConversion: '<S487>/Data Type Conversion8' */
16804 L4_MABX_B.RX_status_g4 = (L4_MABX_B.SFunction1_o3_ig != 0.0);
16805
16806 /* DataTypeConversion: '<S487>/Data Type Conversion9' */
16807 L4_MABX_B.RX_time_ac = L4_MABX_B.SFunction1_o4_fo;
16808
16809 /* Outputs for Enabled SubSystem: '<S489>/Tracks' incorporates:
16810 * EnablePort: '<S490>/Enable'
16811 */
16812 /* Constant: '<S414>/Constant' */
16813 if (L4_MABX_P.Constant_Value_hd) {
16814 /* S-Function (rti_commonblock): '<S490>/S-Function1' */
16815 /* This comment workarounds a code generation problem */
16816
16817 /* dSPACE RTICAN RX Message Block: "Tracks" Id:1635 */
16818 {
16819 UInt32 *CAN_Msg;
16820 static dsfloat time_old = 0.0;
16821
16822 /* Read status and timestamp info (previous message) */
16823 if (can_type1_M2_C1_STD[CANTP1_M2_C1_RXSRVC_STD_0x663].timestamp !=
16824 time_old) {
16825 /* ... save timestamp info for the calculation of the RX status
16826 during the consecutive sample hit*/
16827 time_old = can_type1_M2_C1_STD[CANTP1_M2_C1_RXSRVC_STD_0x663].timestamp;
16828
16829 /* ... set the processed flag to one */
16830 L4_MABX_B.SFunction1_o72 = 1.0;
16831 L4_MABX_B.SFunction1_o73 = (real_T)
16832 can_type1_M2_C1_STD[CANTP1_M2_C1_RXSRVC_STD_0x663].timestamp;
16833 L4_MABX_B.SFunction1_o74 = (real_T)
16834 can_type1_M2_C1_STD[CANTP1_M2_C1_RXSRVC_STD_0x663].deltatime;
16835 CAN_Msg = can_type1_M2_C1_STD[CANTP1_M2_C1_RXSRVC_STD_0x663].data;
16836
16837 /* Decode CAN message */
16838 {
16839 {
16840 rtican_Signal_t CAN_Sgn;
16841 UInt32 modeSignal;
16842
16843 /* ...... "track_multiplexor" (56|8, mode signal, unsigned int, motorola back.) */
16844 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
16845 CAN_Sgn.UnsignedSgn &= 0x000000FF;
16846 L4_MABX_B.SFunction1_o71 = ((real_T) CAN_Sgn.UnsignedSgn);
16847 modeSignal = (UInt32) L4_MABX_B.SFunction1_o71;
16848 if (modeSignal == 4) {
16849 /* ...... "tr0_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
16850 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16851 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16852 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
16853 L4_MABX_B.SFunction1_o1_ct = ((real_T) CAN_Sgn.UnsignedSgn);
16854 }
16855
16856 if (modeSignal == 5) {
16857 /* ...... "tr0_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
16858 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16859 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16860 CAN_Sgn.SignedSgn &= 0x0000FFFF;
16861 if (CAN_Sgn.SignedSgn >> 15) {
16862 CAN_Sgn.SignedSgn |= 0xFFFF0000;
16863 }
16864
16865 L4_MABX_B.SFunction1_o2_ka = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
16866 );
16867 }
16868
16869 if (modeSignal == 12) {
16870 /* ...... "tr1_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
16871 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16872 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16873 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
16874 L4_MABX_B.SFunction1_o3_ilz = ((real_T) CAN_Sgn.UnsignedSgn);
16875 }
16876
16877 if (modeSignal == 13) {
16878 /* ...... "tr1_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
16879 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16880 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16881 CAN_Sgn.SignedSgn &= 0x0000FFFF;
16882 if (CAN_Sgn.SignedSgn >> 15) {
16883 CAN_Sgn.SignedSgn |= 0xFFFF0000;
16884 }
16885
16886 L4_MABX_B.SFunction1_o4_jm2 = 0.001 * ( ((real_T)
16887 CAN_Sgn.SignedSgn) );
16888 }
16889
16890 if (modeSignal == 20) {
16891 /* ...... "tr2_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
16892 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16893 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16894 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
16895 L4_MABX_B.SFunction1_o5_oc = ((real_T) CAN_Sgn.UnsignedSgn);
16896 }
16897
16898 if (modeSignal == 21) {
16899 /* ...... "tr2_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
16900 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16901 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16902 CAN_Sgn.SignedSgn &= 0x0000FFFF;
16903 if (CAN_Sgn.SignedSgn >> 15) {
16904 CAN_Sgn.SignedSgn |= 0xFFFF0000;
16905 }
16906
16907 L4_MABX_B.SFunction1_o6_nx = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
16908 );
16909 }
16910
16911 if (modeSignal == 28) {
16912 /* ...... "tr3_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
16913 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16914 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16915 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
16916 L4_MABX_B.SFunction1_o7_bz = ((real_T) CAN_Sgn.UnsignedSgn);
16917 }
16918
16919 if (modeSignal == 29) {
16920 /* ...... "tr3_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
16921 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16922 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16923 CAN_Sgn.SignedSgn &= 0x0000FFFF;
16924 if (CAN_Sgn.SignedSgn >> 15) {
16925 CAN_Sgn.SignedSgn |= 0xFFFF0000;
16926 }
16927
16928 L4_MABX_B.SFunction1_o8_f = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
16929 );
16930 }
16931
16932 if (modeSignal == 36) {
16933 /* ...... "tr4_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
16934 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16935 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16936 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
16937 L4_MABX_B.SFunction1_o9_mc = ((real_T) CAN_Sgn.UnsignedSgn);
16938 }
16939
16940 if (modeSignal == 37) {
16941 /* ...... "tr4_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
16942 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16943 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16944 CAN_Sgn.SignedSgn &= 0x0000FFFF;
16945 if (CAN_Sgn.SignedSgn >> 15) {
16946 CAN_Sgn.SignedSgn |= 0xFFFF0000;
16947 }
16948
16949 L4_MABX_B.SFunction1_o10_iw = 0.001 * ( ((real_T)
16950 CAN_Sgn.SignedSgn) );
16951 }
16952
16953 if (modeSignal == 44) {
16954 /* ...... "tr5_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
16955 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16956 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16957 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
16958 L4_MABX_B.SFunction1_o11_p = ((real_T) CAN_Sgn.UnsignedSgn);
16959 }
16960
16961 if (modeSignal == 45) {
16962 /* ...... "tr5_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
16963 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16964 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16965 CAN_Sgn.SignedSgn &= 0x0000FFFF;
16966 if (CAN_Sgn.SignedSgn >> 15) {
16967 CAN_Sgn.SignedSgn |= 0xFFFF0000;
16968 }
16969
16970 L4_MABX_B.SFunction1_o12_bs = 0.001 * ( ((real_T)
16971 CAN_Sgn.SignedSgn) );
16972 }
16973
16974 if (modeSignal == 52) {
16975 /* ...... "tr6_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
16976 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16977 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16978 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
16979 L4_MABX_B.SFunction1_o13_f = ((real_T) CAN_Sgn.UnsignedSgn);
16980 }
16981
16982 if (modeSignal == 53) {
16983 /* ...... "tr6_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
16984 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16985 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16986 CAN_Sgn.SignedSgn &= 0x0000FFFF;
16987 if (CAN_Sgn.SignedSgn >> 15) {
16988 CAN_Sgn.SignedSgn |= 0xFFFF0000;
16989 }
16990
16991 L4_MABX_B.SFunction1_o14_ks = 0.001 * ( ((real_T)
16992 CAN_Sgn.SignedSgn) );
16993 }
16994
16995 if (modeSignal == 60) {
16996 /* ...... "tr7_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
16997 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16998 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16999 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
17000 L4_MABX_B.SFunction1_o15_g = ((real_T) CAN_Sgn.UnsignedSgn);
17001 }
17002
17003 if (modeSignal == 61) {
17004 /* ...... "tr7_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
17005 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17006 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17007 CAN_Sgn.SignedSgn &= 0x0000FFFF;
17008 if (CAN_Sgn.SignedSgn >> 15) {
17009 CAN_Sgn.SignedSgn |= 0xFFFF0000;
17010 }
17011
17012 L4_MABX_B.SFunction1_o16_e4 = 0.001 * ( ((real_T)
17013 CAN_Sgn.SignedSgn) );
17014 }
17015
17016 if (modeSignal == 68) {
17017 /* ...... "tr8_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
17018 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17019 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17020 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
17021 L4_MABX_B.SFunction1_o17_g = ((real_T) CAN_Sgn.UnsignedSgn);
17022 }
17023
17024 if (modeSignal == 69) {
17025 /* ...... "tr8_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
17026 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17027 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17028 CAN_Sgn.SignedSgn &= 0x0000FFFF;
17029 if (CAN_Sgn.SignedSgn >> 15) {
17030 CAN_Sgn.SignedSgn |= 0xFFFF0000;
17031 }
17032
17033 L4_MABX_B.SFunction1_o18_g = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
17034 );
17035 }
17036
17037 if (modeSignal == 76) {
17038 /* ...... "tr9_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
17039 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17040 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17041 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
17042 L4_MABX_B.SFunction1_o19_g = ((real_T) CAN_Sgn.UnsignedSgn);
17043 }
17044
17045 if (modeSignal == 77) {
17046 /* ...... "tr9_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
17047 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17048 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17049 CAN_Sgn.SignedSgn &= 0x0000FFFF;
17050 if (CAN_Sgn.SignedSgn >> 15) {
17051 CAN_Sgn.SignedSgn |= 0xFFFF0000;
17052 }
17053
17054 L4_MABX_B.SFunction1_o20_o = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
17055 );
17056 }
17057
17058 if (modeSignal == 6) {
17059 /* ...... "tr0_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17060 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17061 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17062 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17063 CAN_Sgn.SignedSgn &= 0x000003FF;
17064 if (CAN_Sgn.SignedSgn >> 9) {
17065 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17066 }
17067
17068 L4_MABX_B.SFunction1_o21_b = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17069 }
17070
17071 if (modeSignal == 14) {
17072 /* ...... "tr1_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17073 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17074 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17075 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17076 CAN_Sgn.SignedSgn &= 0x000003FF;
17077 if (CAN_Sgn.SignedSgn >> 9) {
17078 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17079 }
17080
17081 L4_MABX_B.SFunction1_o22_b = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17082 }
17083
17084 if (modeSignal == 22) {
17085 /* ...... "tr2_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17086 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17087 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17088 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17089 CAN_Sgn.SignedSgn &= 0x000003FF;
17090 if (CAN_Sgn.SignedSgn >> 9) {
17091 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17092 }
17093
17094 L4_MABX_B.SFunction1_o23_k = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17095 }
17096
17097 if (modeSignal == 30) {
17098 /* ...... "tr3_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17099 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17100 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17101 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17102 CAN_Sgn.SignedSgn &= 0x000003FF;
17103 if (CAN_Sgn.SignedSgn >> 9) {
17104 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17105 }
17106
17107 L4_MABX_B.SFunction1_o24_l = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17108 }
17109
17110 if (modeSignal == 38) {
17111 /* ...... "tr4_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17112 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17113 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17114 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17115 CAN_Sgn.SignedSgn &= 0x000003FF;
17116 if (CAN_Sgn.SignedSgn >> 9) {
17117 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17118 }
17119
17120 L4_MABX_B.SFunction1_o25_g = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17121 }
17122
17123 if (modeSignal == 46) {
17124 /* ...... "tr5_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17125 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17126 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17127 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17128 CAN_Sgn.SignedSgn &= 0x000003FF;
17129 if (CAN_Sgn.SignedSgn >> 9) {
17130 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17131 }
17132
17133 L4_MABX_B.SFunction1_o26_j = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17134 }
17135
17136 if (modeSignal == 54) {
17137 /* ...... "tr6_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17138 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17139 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17140 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17141 CAN_Sgn.SignedSgn &= 0x000003FF;
17142 if (CAN_Sgn.SignedSgn >> 9) {
17143 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17144 }
17145
17146 L4_MABX_B.SFunction1_o27_c = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17147 }
17148
17149 if (modeSignal == 62) {
17150 /* ...... "tr7_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17151 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17152 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17153 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17154 CAN_Sgn.SignedSgn &= 0x000003FF;
17155 if (CAN_Sgn.SignedSgn >> 9) {
17156 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17157 }
17158
17159 L4_MABX_B.SFunction1_o28_f = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17160 }
17161
17162 if (modeSignal == 70) {
17163 /* ...... "tr8_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17164 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17165 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17166 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17167 CAN_Sgn.SignedSgn &= 0x000003FF;
17168 if (CAN_Sgn.SignedSgn >> 9) {
17169 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17170 }
17171
17172 L4_MABX_B.SFunction1_o29 = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17173 }
17174
17175 if (modeSignal == 78) {
17176 /* ...... "tr9_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17177 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17178 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17179 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17180 CAN_Sgn.SignedSgn &= 0x000003FF;
17181 if (CAN_Sgn.SignedSgn >> 9) {
17182 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17183 }
17184
17185 L4_MABX_B.SFunction1_o30 = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17186 }
17187
17188 if (modeSignal == 4) {
17189 /* ...... "tr0_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17190 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17191 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17192 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17193 L4_MABX_B.SFunction1_o31 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17194 );
17195 }
17196
17197 if (modeSignal == 12) {
17198 /* ...... "tr1_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17199 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17200 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17201 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17202 L4_MABX_B.SFunction1_o32 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17203 );
17204 }
17205
17206 if (modeSignal == 20) {
17207 /* ...... "tr2_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17208 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17209 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17210 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17211 L4_MABX_B.SFunction1_o33 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17212 );
17213 }
17214
17215 if (modeSignal == 28) {
17216 /* ...... "tr3_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17217 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17218 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17219 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17220 L4_MABX_B.SFunction1_o34 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17221 );
17222 }
17223
17224 if (modeSignal == 36) {
17225 /* ...... "tr4_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17226 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17227 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17228 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17229 L4_MABX_B.SFunction1_o35 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17230 );
17231 }
17232
17233 if (modeSignal == 44) {
17234 /* ...... "tr5_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17235 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17236 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17237 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17238 L4_MABX_B.SFunction1_o36 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17239 );
17240 }
17241
17242 if (modeSignal == 52) {
17243 /* ...... "tr6_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17244 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17245 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17246 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17247 L4_MABX_B.SFunction1_o37 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17248 );
17249 }
17250
17251 if (modeSignal == 60) {
17252 /* ...... "tr7_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17253 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17254 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17255 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17256 L4_MABX_B.SFunction1_o38 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17257 );
17258 }
17259
17260 if (modeSignal == 68) {
17261 /* ...... "tr8_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17262 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17263 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17264 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17265 L4_MABX_B.SFunction1_o39 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17266 );
17267 }
17268
17269 if (modeSignal == 76) {
17270 /* ...... "tr9_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17271 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17272 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17273 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17274 L4_MABX_B.SFunction1_o40 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17275 );
17276 }
17277
17278 if (modeSignal == 6) {
17279 /* ...... "tr0_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17280 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17281 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17282 L4_MABX_B.SFunction1_o41 = 0.00392156862745098 * ( ((real_T)
17283 CAN_Sgn.UnsignedSgn) );
17284 }
17285
17286 if (modeSignal == 14) {
17287 /* ...... "tr1_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17288 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17289 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17290 L4_MABX_B.SFunction1_o42 = 0.00392156862745098 * ( ((real_T)
17291 CAN_Sgn.UnsignedSgn) );
17292 }
17293
17294 if (modeSignal == 22) {
17295 /* ...... "tr2_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17296 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17297 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17298 L4_MABX_B.SFunction1_o43 = 0.00392156862745098 * ( ((real_T)
17299 CAN_Sgn.UnsignedSgn) );
17300 }
17301
17302 if (modeSignal == 30) {
17303 /* ...... "tr3_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17304 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17305 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17306 L4_MABX_B.SFunction1_o44 = 0.00392156862745098 * ( ((real_T)
17307 CAN_Sgn.UnsignedSgn) );
17308 }
17309
17310 if (modeSignal == 38) {
17311 /* ...... "tr4_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17312 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17313 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17314 L4_MABX_B.SFunction1_o45 = 0.00392156862745098 * ( ((real_T)
17315 CAN_Sgn.UnsignedSgn) );
17316 }
17317
17318 if (modeSignal == 46) {
17319 /* ...... "tr5_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17320 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17321 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17322 L4_MABX_B.SFunction1_o46 = 0.00392156862745098 * ( ((real_T)
17323 CAN_Sgn.UnsignedSgn) );
17324 }
17325
17326 if (modeSignal == 54) {
17327 /* ...... "tr6_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17328 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17329 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17330 L4_MABX_B.SFunction1_o47 = 0.00392156862745098 * ( ((real_T)
17331 CAN_Sgn.UnsignedSgn) );
17332 }
17333
17334 if (modeSignal == 62) {
17335 /* ...... "tr7_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17336 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17337 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17338 L4_MABX_B.SFunction1_o48 = 0.00392156862745098 * ( ((real_T)
17339 CAN_Sgn.UnsignedSgn) );
17340 }
17341
17342 if (modeSignal == 70) {
17343 /* ...... "tr8_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17344 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17345 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17346 L4_MABX_B.SFunction1_o49 = 0.00392156862745098 * ( ((real_T)
17347 CAN_Sgn.UnsignedSgn) );
17348 }
17349
17350 if (modeSignal == 78) {
17351 /* ...... "tr9_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17352 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17353 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17354 L4_MABX_B.SFunction1_o50 = 0.00392156862745098 * ( ((real_T)
17355 CAN_Sgn.UnsignedSgn) );
17356 }
17357
17358 if (modeSignal == 4) {
17359 /* ...... "tr0_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17360 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17361 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17362 CAN_Sgn.SignedSgn &= 0x00003FFF;
17363 if (CAN_Sgn.SignedSgn >> 13) {
17364 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17365 }
17366
17367 L4_MABX_B.SFunction1_o51 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17368 }
17369
17370 if (modeSignal == 5) {
17371 /* ...... "tr0_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17372 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17373 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17374 L4_MABX_B.SFunction1_o52 = -8.8 + ( 0.05 * ( ((real_T)
17375 CAN_Sgn.UnsignedSgn) ) );
17376 }
17377
17378 if (modeSignal == 12) {
17379 /* ...... "tr1_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17380 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17381 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17382 CAN_Sgn.SignedSgn &= 0x00003FFF;
17383 if (CAN_Sgn.SignedSgn >> 13) {
17384 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17385 }
17386
17387 L4_MABX_B.SFunction1_o53 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17388 }
17389
17390 if (modeSignal == 13) {
17391 /* ...... "tr1_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17392 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17393 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17394 L4_MABX_B.SFunction1_o54 = -8.8 + ( 0.05 * ( ((real_T)
17395 CAN_Sgn.UnsignedSgn) ) );
17396 }
17397
17398 if (modeSignal == 20) {
17399 /* ...... "tr2_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17400 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17401 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17402 CAN_Sgn.SignedSgn &= 0x00003FFF;
17403 if (CAN_Sgn.SignedSgn >> 13) {
17404 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17405 }
17406
17407 L4_MABX_B.SFunction1_o55 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17408 }
17409
17410 if (modeSignal == 21) {
17411 /* ...... "tr2_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17412 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17413 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17414 L4_MABX_B.SFunction1_o56 = -8.8 + ( 0.05 * ( ((real_T)
17415 CAN_Sgn.UnsignedSgn) ) );
17416 }
17417
17418 if (modeSignal == 28) {
17419 /* ...... "tr3_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17420 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17421 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17422 CAN_Sgn.SignedSgn &= 0x00003FFF;
17423 if (CAN_Sgn.SignedSgn >> 13) {
17424 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17425 }
17426
17427 L4_MABX_B.SFunction1_o57 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17428 }
17429
17430 if (modeSignal == 29) {
17431 /* ...... "tr3_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17432 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17433 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17434 L4_MABX_B.SFunction1_o58 = -8.8 + ( 0.05 * ( ((real_T)
17435 CAN_Sgn.UnsignedSgn) ) );
17436 }
17437
17438 if (modeSignal == 36) {
17439 /* ...... "tr4_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17440 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17441 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17442 CAN_Sgn.SignedSgn &= 0x00003FFF;
17443 if (CAN_Sgn.SignedSgn >> 13) {
17444 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17445 }
17446
17447 L4_MABX_B.SFunction1_o59 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17448 }
17449
17450 if (modeSignal == 37) {
17451 /* ...... "tr4_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17452 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17453 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17454 L4_MABX_B.SFunction1_o60 = -8.8 + ( 0.05 * ( ((real_T)
17455 CAN_Sgn.UnsignedSgn) ) );
17456 }
17457
17458 if (modeSignal == 44) {
17459 /* ...... "tr5_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17460 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17461 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17462 CAN_Sgn.SignedSgn &= 0x00003FFF;
17463 if (CAN_Sgn.SignedSgn >> 13) {
17464 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17465 }
17466
17467 L4_MABX_B.SFunction1_o61 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17468 }
17469
17470 if (modeSignal == 45) {
17471 /* ...... "tr5_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17472 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17473 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17474 L4_MABX_B.SFunction1_o62 = -8.8 + ( 0.05 * ( ((real_T)
17475 CAN_Sgn.UnsignedSgn) ) );
17476 }
17477
17478 if (modeSignal == 52) {
17479 /* ...... "tr6_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17480 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17481 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17482 CAN_Sgn.SignedSgn &= 0x00003FFF;
17483 if (CAN_Sgn.SignedSgn >> 13) {
17484 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17485 }
17486
17487 L4_MABX_B.SFunction1_o63 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17488 }
17489
17490 if (modeSignal == 53) {
17491 /* ...... "tr6_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17492 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17493 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17494 L4_MABX_B.SFunction1_o64 = -8.8 + ( 0.05 * ( ((real_T)
17495 CAN_Sgn.UnsignedSgn) ) );
17496 }
17497
17498 if (modeSignal == 60) {
17499 /* ...... "tr7_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17500 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17501 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17502 CAN_Sgn.SignedSgn &= 0x00003FFF;
17503 if (CAN_Sgn.SignedSgn >> 13) {
17504 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17505 }
17506
17507 L4_MABX_B.SFunction1_o65 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17508 }
17509
17510 if (modeSignal == 61) {
17511 /* ...... "tr7_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17512 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17513 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17514 L4_MABX_B.SFunction1_o66 = -8.8 + ( 0.05 * ( ((real_T)
17515 CAN_Sgn.UnsignedSgn) ) );
17516 }
17517
17518 if (modeSignal == 68) {
17519 /* ...... "tr8_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17520 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17521 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17522 CAN_Sgn.SignedSgn &= 0x00003FFF;
17523 if (CAN_Sgn.SignedSgn >> 13) {
17524 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17525 }
17526
17527 L4_MABX_B.SFunction1_o67 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17528 }
17529
17530 if (modeSignal == 69) {
17531 /* ...... "tr8_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17532 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17533 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17534 L4_MABX_B.SFunction1_o68 = -8.8 + ( 0.05 * ( ((real_T)
17535 CAN_Sgn.UnsignedSgn) ) );
17536 }
17537
17538 if (modeSignal == 76) {
17539 /* ...... "tr9_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17540 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17541 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17542 CAN_Sgn.SignedSgn &= 0x00003FFF;
17543 if (CAN_Sgn.SignedSgn >> 13) {
17544 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17545 }
17546
17547 L4_MABX_B.SFunction1_o69 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17548 }
17549
17550 if (modeSignal == 77) {
17551 /* ...... "tr9_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17552 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17553 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17554 L4_MABX_B.SFunction1_o70 = -8.8 + ( 0.05 * ( ((real_T)
17555 CAN_Sgn.UnsignedSgn) ) );
17556 }
17557 }
17558 }
17559 } else {
17560 /* set RX status to 0 because no new message has arrived */
17561 L4_MABX_B.SFunction1_o72 = 0.0;
17562 }
17563 }
17564 }
17565
17566 /* End of Constant: '<S414>/Constant' */
17567 /* End of Outputs for SubSystem: '<S489>/Tracks' */
17568
17569 /* DataTypeConversion: '<S489>/Data Type Conversion10' */
17570 L4_MABX_B.Bendix_RADAR_Tracks_RX_delta_ti = L4_MABX_B.SFunction1_o74;
17571
17572 /* DataTypeConversion: '<S489>/Data Type Conversion8' */
17573 L4_MABX_B.Bendix_RADAR_Tracks_RX_status = (L4_MABX_B.SFunction1_o72 != 0.0);
17574
17575 /* DataTypeConversion: '<S489>/Data Type Conversion9' */
17576 L4_MABX_B.Bendix_RADAR_Tracks_RX_time = L4_MABX_B.SFunction1_o73;
17577
17578 /* DataTypeConversion: '<S491>/Data Type Conversion10' */
17579 L4_MABX_B.RX_delta_time_bk = L4_MABX_B.SFunction1_o23_dl;
17580
17581 /* DataTypeConversion: '<S491>/Data Type Conversion8' */
17582 L4_MABX_B.RX_status_l = (L4_MABX_B.SFunction1_o21_j != 0.0);
17583
17584 /* DataTypeConversion: '<S491>/Data Type Conversion9' */
17585 L4_MABX_B.RX_time_np = L4_MABX_B.SFunction1_o22_d;
17586
17587 /* DataTypeConversion: '<S493>/Data Type Conversion10' */
17588 L4_MABX_B.RX_delta_time_a2 = L4_MABX_B.SFunction1_o23_g;
17589
17590 /* DataTypeConversion: '<S493>/Data Type Conversion8' */
17591 L4_MABX_B.RX_status_ia = (L4_MABX_B.SFunction1_o21_f != 0.0);
17592
17593 /* DataTypeConversion: '<S493>/Data Type Conversion9' */
17594 L4_MABX_B.RX_time_ie = L4_MABX_B.SFunction1_o22_fj;
17595
17596 /* Switch: '<S495>/Switch' */
17597 if (L4_MABX_B.RX_status_d) {
17598 L4_MABX_B.RX_status_a = L4_MABX_B.RX_status_d;
17599 } else {
17600 /* DataTypeConversion: '<S495>/Data Type Conversion1' */
17601 L4_MABX_B.RX_status_e0 = (L4_MABX_B.SFunction1_o5_df != 0.0);
17602 L4_MABX_B.RX_status_a = L4_MABX_B.RX_status_e0;
17603 }
17604
17605 if (L4_MABX_B.RX_status_d) {
17606 /* DataTypeConversion: '<S495>/Data Type Conversion9' */
17607 L4_MABX_B.RX_time_e3 = L4_MABX_B.SFunction1_o6_c5;
17608 L4_MABX_B.RX_time_k = L4_MABX_B.RX_time_e3;
17609
17610 /* DataTypeConversion: '<S495>/Data Type Conversion10' */
17611 L4_MABX_B.RX_delta_time_cz = L4_MABX_B.SFunction1_o7_ny;
17612 L4_MABX_B.RX_delta_time_hn = L4_MABX_B.RX_delta_time_cz;
17613 } else {
17614 /* DataTypeConversion: '<S495>/Data Type Conversion2' */
17615 L4_MABX_B.RX_time_hv = L4_MABX_B.SFunction1_o6_gql;
17616 L4_MABX_B.RX_time_k = L4_MABX_B.RX_time_hv;
17617
17618 /* DataTypeConversion: '<S495>/Data Type Conversion3' */
17619 L4_MABX_B.RX_delta_time_pk = L4_MABX_B.SFunction1_o7_c4;
17620 L4_MABX_B.RX_delta_time_hn = L4_MABX_B.RX_delta_time_pk;
17621 }
17622
17623 /* DataTypeConversion: '<S498>/Data Type Conversion10' */
17624 L4_MABX_B.RX_delta_time_fn = L4_MABX_B.SFunction1_o4_jm;
17625
17626 /* DataTypeConversion: '<S498>/Data Type Conversion8' */
17627 L4_MABX_B.RX_status_i0 = (L4_MABX_B.SFunction1_o2_ex != 0.0);
17628
17629 /* DataTypeConversion: '<S498>/Data Type Conversion9' */
17630 L4_MABX_B.RX_time_fk = L4_MABX_B.SFunction1_o3_kh;
17631
17632 /* Outputs for Enabled SubSystem: '<S500>/EBC1_0B' incorporates:
17633 * EnablePort: '<S501>/Enable'
17634 */
17635 /* Constant: '<S419>/Constant1' */
17636 if (L4_MABX_P.Constant1_Value_k) {
17637 /* S-Function (rti_commonblock): '<S501>/S-Function1' */
17638 /* This comment workarounds a code generation problem */
17639
17640 /* dSPACE RTICAN RX Message Block: "EBC1_0B" Id:418382091 */
17641 {
17642 UInt32 *CAN_Msg;
17643 static dsfloat time_old = 0.0;
17644
17645 /* Read status and timestamp info (previous message) */
17646 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0010B].timestamp !=
17647 time_old) {
17648 /* ... save timestamp info for the calculation of the RX status
17649 during the consecutive sample hit*/
17650 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0010B].
17651 timestamp;
17652
17653 /* ... set the processed flag to one */
17654 L4_MABX_B.SFunction1_o23_d = 1.0;
17655 L4_MABX_B.SFunction1_o24_b = (real_T)
17656 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0010B].timestamp;
17657 L4_MABX_B.SFunction1_o25_i = (real_T)
17658 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0010B].deltatime;
17659 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0010B].data;
17660
17661 /* Decode CAN message */
17662 {
17663 {
17664 rtican_Signal_t CAN_Sgn;
17665
17666 /* ...... "ASREngCtrlActive" (0|2, standard signal, unsigned int, little endian) */
17667 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17668 CAN_Sgn.UnsignedSgn &= 0x00000003;
17669 L4_MABX_B.SFunction1_o1_gyc = ((real_T) CAN_Sgn.UnsignedSgn);
17670
17671 /* ...... "ASRBrakeCtrlActive" (2|2, standard signal, unsigned int, little endian) */
17672 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17673 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
17674 CAN_Sgn.UnsignedSgn &= 0x00000003;
17675 L4_MABX_B.SFunction1_o2_dd = ((real_T) CAN_Sgn.UnsignedSgn);
17676
17677 /* ...... "AntiLockBrakingActive" (4|2, standard signal, unsigned int, little endian) */
17678 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17679 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
17680 CAN_Sgn.UnsignedSgn &= 0x00000003;
17681 L4_MABX_B.SFunction1_o3_n2k = ((real_T) CAN_Sgn.UnsignedSgn);
17682
17683 /* ...... "EBSBrakeSwitch" (6|2, standard signal, unsigned int, little endian) */
17684 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17685 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
17686 CAN_Sgn.UnsignedSgn &= 0x00000003;
17687 L4_MABX_B.SFunction1_o4_ke = ((real_T) CAN_Sgn.UnsignedSgn);
17688
17689 /* ...... "BrakePedalPos" (8|8, standard signal, unsigned int, little endian) */
17690 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
17691 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17692 L4_MABX_B.SFunction1_o5_jf = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
17693
17694 /* ...... "ABSOffroadSwitch" (16|2, standard signal, unsigned int, little endian) */
17695 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
17696 CAN_Sgn.UnsignedSgn &= 0x00000003;
17697 L4_MABX_B.SFunction1_o6_ky = ((real_T) CAN_Sgn.UnsignedSgn);
17698
17699 /* ...... "ASROffroadSwitch" (18|2, standard signal, unsigned int, little endian) */
17700 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
17701 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
17702 CAN_Sgn.UnsignedSgn &= 0x00000003;
17703 L4_MABX_B.SFunction1_o7_kx = ((real_T) CAN_Sgn.UnsignedSgn);
17704
17705 /* ...... "ASRHillHolderSwitch" (20|2, standard signal, unsigned int, little endian) */
17706 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
17707 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
17708 CAN_Sgn.UnsignedSgn &= 0x00000003;
17709 L4_MABX_B.SFunction1_o8_ga = ((real_T) CAN_Sgn.UnsignedSgn);
17710
17711 /* ...... "TractionCtrlOverrideSwitch" (22|2, standard signal, unsigned int, little endian) */
17712 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
17713 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
17714 CAN_Sgn.UnsignedSgn &= 0x00000003;
17715 L4_MABX_B.SFunction1_o9_oq = ((real_T) CAN_Sgn.UnsignedSgn);
17716
17717 /* ...... "AccelInterlockSwitch" (24|2, standard signal, unsigned int, little endian) */
17718 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17719 CAN_Sgn.UnsignedSgn &= 0x00000003;
17720 L4_MABX_B.SFunction1_o10_gi = ((real_T) CAN_Sgn.UnsignedSgn);
17721
17722 /* ...... "EngDerateSwitch" (26|2, standard signal, unsigned int, little endian) */
17723 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17724 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
17725 CAN_Sgn.UnsignedSgn &= 0x00000003;
17726 L4_MABX_B.SFunction1_o11_gr = ((real_T) CAN_Sgn.UnsignedSgn);
17727
17728 /* ...... "EngAuxShutdownSwitch" (28|2, standard signal, unsigned int, little endian) */
17729 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17730 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
17731 CAN_Sgn.UnsignedSgn &= 0x00000003;
17732 L4_MABX_B.SFunction1_o12_b = ((real_T) CAN_Sgn.UnsignedSgn);
17733
17734 /* ...... "RemoteAccelEnableSwitch" (30|2, standard signal, unsigned int, little endian) */
17735 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17736 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
17737 CAN_Sgn.UnsignedSgn &= 0x00000003;
17738 L4_MABX_B.SFunction1_o13_d = ((real_T) CAN_Sgn.UnsignedSgn);
17739
17740 /* ...... "EngRetarderSelection" (32|8, standard signal, unsigned int, little endian) */
17741 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17742 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17743 L4_MABX_B.SFunction1_o14_k = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
17744
17745 /* ...... "ABSFullyOperational" (40|2, standard signal, unsigned int, little endian) */
17746 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17747 CAN_Sgn.UnsignedSgn &= 0x00000003;
17748 L4_MABX_B.SFunction1_o15_ex = ((real_T) CAN_Sgn.UnsignedSgn);
17749
17750 /* ...... "EBSRedWarningSignal" (42|2, standard signal, unsigned int, little endian) */
17751 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17752 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
17753 CAN_Sgn.UnsignedSgn &= 0x00000003;
17754 L4_MABX_B.SFunction1_o16_pu = ((real_T) CAN_Sgn.UnsignedSgn);
17755
17756 /* ...... "ABS_EBSAmberWarningSignal" (44|2, standard signal, unsigned int, little endian) */
17757 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17758 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
17759 CAN_Sgn.UnsignedSgn &= 0x00000003;
17760 L4_MABX_B.SFunction1_o17_h = ((real_T) CAN_Sgn.UnsignedSgn);
17761
17762 /* ...... "ATC_ASRInformationSignal" (46|2, standard signal, unsigned int, little endian) */
17763 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17764 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
17765 CAN_Sgn.UnsignedSgn &= 0x00000003;
17766 L4_MABX_B.SFunction1_o18_c = ((real_T) CAN_Sgn.UnsignedSgn);
17767
17768 /* ...... "SrcAddrssOfCtrllngDvcFrBrkCntrl" (48|8, standard signal, unsigned int, little endian) */
17769 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17770 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17771 L4_MABX_B.SFunction1_o19_f = ((real_T) CAN_Sgn.UnsignedSgn);
17772
17773 /* ...... "HaltBrakeSwitch" (58|2, standard signal, unsigned int, little endian) */
17774 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17775 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
17776 CAN_Sgn.UnsignedSgn &= 0x00000003;
17777 L4_MABX_B.SFunction1_o20_l = ((real_T) CAN_Sgn.UnsignedSgn);
17778
17779 /* ...... "TrailerABSStatus" (60|2, standard signal, unsigned int, little endian) */
17780 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17781 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
17782 CAN_Sgn.UnsignedSgn &= 0x00000003;
17783 L4_MABX_B.SFunction1_o21_k = ((real_T) CAN_Sgn.UnsignedSgn);
17784
17785 /* ...... "TrctrMntdTrilerABSWarningSignal" (62|2, standard signal, unsigned int, little endian) */
17786 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17787 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
17788 CAN_Sgn.UnsignedSgn &= 0x00000003;
17789 L4_MABX_B.SFunction1_o22_f = ((real_T) CAN_Sgn.UnsignedSgn);
17790 }
17791 }
17792 } else {
17793 /* set RX status to 0 because no new message has arrived */
17794 L4_MABX_B.SFunction1_o23_d = 0.0;
17795 }
17796 }
17797 }
17798
17799 /* End of Constant: '<S419>/Constant1' */
17800 /* End of Outputs for SubSystem: '<S500>/EBC1_0B' */
17801
17802 /* DataTypeConversion: '<S500>/Data Type Conversion10' */
17803 L4_MABX_B.RX_delta_time_b5 = L4_MABX_B.SFunction1_o25_i;
17804
17805 /* DataTypeConversion: '<S500>/Data Type Conversion8' */
17806 L4_MABX_B.RX_status_d2 = (L4_MABX_B.SFunction1_o23_d != 0.0);
17807
17808 /* DataTypeConversion: '<S500>/Data Type Conversion9' */
17809 L4_MABX_B.RX_time_l = L4_MABX_B.SFunction1_o24_b;
17810
17811 /* DataTypeConversion: '<S502>/Data Type Conversion10' */
17812 L4_MABX_B.RX_delta_time_ay = L4_MABX_B.SFunction1_o25_h;
17813
17814 /* DataTypeConversion: '<S502>/Data Type Conversion8' */
17815 L4_MABX_B.RX_status_h = (L4_MABX_B.SFunction1_o23_n != 0.0);
17816
17817 /* DataTypeConversion: '<S502>/Data Type Conversion9' */
17818 L4_MABX_B.RX_time_ke = L4_MABX_B.SFunction1_o24_e;
17819
17820 /* DataTypeConversion: '<S504>/Data Type Conversion10' */
17821 L4_MABX_B.RX_delta_time_l = L4_MABX_B.SFunction1_o10_cx;
17822
17823 /* DataTypeConversion: '<S504>/Data Type Conversion8' */
17824 L4_MABX_B.RX_status_az = (L4_MABX_B.SFunction1_o8_e != 0.0);
17825
17826 /* DataTypeConversion: '<S504>/Data Type Conversion9' */
17827 L4_MABX_B.RX_time_ne = L4_MABX_B.SFunction1_o9_jb;
17828
17829 /* DataTypeConversion: '<S551>/Data Type Conversion10' */
17830 L4_MABX_B.RX_delta_time_p = L4_MABX_B.SFunction1_o11_g0;
17831
17832 /* DataTypeConversion: '<S551>/Data Type Conversion8' */
17833 L4_MABX_B.RX_status_o = (L4_MABX_B.SFunction1_o9_mg != 0.0);
17834
17835 /* DataTypeConversion: '<S551>/Data Type Conversion9' */
17836 L4_MABX_B.RX_time_fu = L4_MABX_B.SFunction1_o10_nr;
17837
17838 /* Outputs for Enabled SubSystem: '<S553>/EEC2_001' incorporates:
17839 * EnablePort: '<S554>/Enable'
17840 */
17841 /* Constant: '<S424>/Enable_RX_EEC2_00' */
17842 if (L4_MABX_P.Enable_RX_EEC2_00_Value) {
17843 /* S-Function (rti_commonblock): '<S554>/S-Function1' */
17844 /* This comment workarounds a code generation problem */
17845
17846 /* dSPACE RTICAN RX Message Block: "EEC2_00" Id:217056000 */
17847 {
17848 UInt32 *CAN_Msg;
17849 static dsfloat time_old = 0.0;
17850
17851 /* Read status and timestamp info (previous message) */
17852 if (can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0xCF00300].timestamp !=
17853 time_old) {
17854 /* ... save timestamp info for the calculation of the RX status
17855 during the consecutive sample hit*/
17856 time_old = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0xCF00300].
17857 timestamp;
17858
17859 /* ... set the processed flag to one */
17860 L4_MABX_B.SFunction1_o15_e = 1.0;
17861 L4_MABX_B.SFunction1_o16_b = (real_T)
17862 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0xCF00300].timestamp;
17863 L4_MABX_B.SFunction1_o17_i = (real_T)
17864 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0xCF00300].deltatime;
17865 CAN_Msg = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0xCF00300].data;
17866
17867 /* Decode CAN message */
17868 {
17869 {
17870 rtican_Signal_t CAN_Sgn;
17871
17872 /* ...... "SPN558_AccelPed1LowIdlSwitch" (0|2, standard signal, unsigned int, little endian) */
17873 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17874 CAN_Sgn.UnsignedSgn &= 0x00000003;
17875 L4_MABX_B.SFunction1_o1_f = ((real_T) CAN_Sgn.UnsignedSgn);
17876
17877 /* ...... "SPN559_AccelPedKickdownSw" (2|2, standard signal, unsigned int, little endian) */
17878 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17879 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
17880 CAN_Sgn.UnsignedSgn &= 0x00000003;
17881 L4_MABX_B.SFunction1_o2_e4 = ((real_T) CAN_Sgn.UnsignedSgn);
17882
17883 /* ...... "SPN1437_RoadSpeedLimitStatus" (4|2, standard signal, unsigned int, little endian) */
17884 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17885 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
17886 CAN_Sgn.UnsignedSgn &= 0x00000003;
17887 L4_MABX_B.SFunction1_o3_o0 = ((real_T) CAN_Sgn.UnsignedSgn);
17888
17889 /* ...... "SPN2970_AccelPed2LowIdlSwitch" (6|2, standard signal, unsigned int, little endian) */
17890 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17891 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
17892 CAN_Sgn.UnsignedSgn &= 0x00000003;
17893 L4_MABX_B.SFunction1_o4_mx = ((real_T) CAN_Sgn.UnsignedSgn);
17894
17895 /* ...... "SPN91_AccelPedPos1" (8|8, standard signal, unsigned int, little endian) */
17896 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
17897 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17898 L4_MABX_B.SFunction1_o5_lt = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
17899
17900 /* ...... "SPN92_EngPercLoadAtCurrSpd" (16|8, standard signal, unsigned int, little endian) */
17901 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
17902 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17903 L4_MABX_B.SFunction1_o6_py = ((real_T) CAN_Sgn.UnsignedSgn);
17904
17905 /* ...... "SPN974_RemAccelPedalPosition" (24|8, standard signal, unsigned int, little endian) */
17906 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17907 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17908 L4_MABX_B.SFunction1_o7_iz = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
17909
17910 /* ...... "SPN29_AccelPedPos2" (32|8, standard signal, unsigned int, little endian) */
17911 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17912 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17913 L4_MABX_B.SFunction1_o8_c = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
17914
17915 /* ...... "SPN2979_VehAccelRateLimStatus" (40|2, standard signal, unsigned int, little endian) */
17916 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17917 CAN_Sgn.UnsignedSgn &= 0x00000003;
17918 L4_MABX_B.SFunction1_o9_o = ((real_T) CAN_Sgn.UnsignedSgn);
17919
17920 /* ...... "SPN5021_MomEngMaxPwrEnFdbk" (42|2, standard signal, unsigned int, little endian) */
17921 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17922 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
17923 CAN_Sgn.UnsignedSgn &= 0x00000003;
17924 L4_MABX_B.SFunction1_o10_iv = ((real_T) CAN_Sgn.UnsignedSgn);
17925
17926 /* ...... "SPN5399_DPFThermMgmtActive" (44|2, standard signal, unsigned int, little endian) */
17927 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17928 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
17929 CAN_Sgn.UnsignedSgn &= 0x00000003;
17930 L4_MABX_B.SFunction1_o11_k = ((real_T) CAN_Sgn.UnsignedSgn);
17931
17932 /* ...... "SPN5400_SCRThermMgmtActive" (46|2, standard signal, unsigned int, little endian) */
17933 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17934 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
17935 CAN_Sgn.UnsignedSgn &= 0x00000003;
17936 L4_MABX_B.SFunction1_o12_a = ((real_T) CAN_Sgn.UnsignedSgn);
17937
17938 /* ...... "SPN3357_ActMaxAvailEngPercTrq" (48|8, standard signal, unsigned int, little endian) */
17939 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17940 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17941 L4_MABX_B.SFunction1_o13_h = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
17942
17943 /* ...... "SPN5398_EstPumpingPercentTorque" (56|8, standard signal, unsigned int, little endian) */
17944 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17945 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17946 L4_MABX_B.SFunction1_o14_o = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
17947 );
17948 }
17949 }
17950 } else {
17951 /* set RX status to 0 because no new message has arrived */
17952 L4_MABX_B.SFunction1_o15_e = 0.0;
17953 }
17954 }
17955 }
17956
17957 /* End of Constant: '<S424>/Enable_RX_EEC2_00' */
17958 /* End of Outputs for SubSystem: '<S553>/EEC2_001' */
17959
17960 /* DataTypeConversion: '<S553>/Data Type Conversion10' */
17961 L4_MABX_B.RX_delta_time_g = L4_MABX_B.SFunction1_o17_i;
17962
17963 /* DataTypeConversion: '<S553>/Data Type Conversion8' */
17964 L4_MABX_B.RX_status_e = (L4_MABX_B.SFunction1_o15_e != 0.0);
17965
17966 /* DataTypeConversion: '<S553>/Data Type Conversion9' */
17967 L4_MABX_B.RX_time_d = L4_MABX_B.SFunction1_o16_b;
17968
17969 /* DataTypeConversion: '<S555>/Data Type Conversion10' */
17970 L4_MABX_B.RX_delta_time_bk5 = L4_MABX_B.SFunction1_o5_j4;
17971
17972 /* DataTypeConversion: '<S555>/Data Type Conversion8' */
17973 L4_MABX_B.RX_status_bw = (L4_MABX_B.SFunction1_o3_fx != 0.0);
17974
17975 /* DataTypeConversion: '<S555>/Data Type Conversion9' */
17976 L4_MABX_B.RX_time_b = L4_MABX_B.SFunction1_o4_ki;
17977
17978 /* DataTypeConversion: '<S557>/Data Type Conversion10' */
17979 L4_MABX_B.RX_delta_time_fnq = L4_MABX_B.SFunction1_o6_dw;
17980
17981 /* DataTypeConversion: '<S557>/Data Type Conversion8' */
17982 L4_MABX_B.RX_status_lb = (L4_MABX_B.SFunction1_o4_os != 0.0);
17983
17984 /* DataTypeConversion: '<S557>/Data Type Conversion9' */
17985 L4_MABX_B.RX_time_dy = L4_MABX_B.SFunction1_o5_i3;
17986
17987 /* Switch: '<S559>/Switch' */
17988 if (L4_MABX_B.RX_status_p) {
17989 L4_MABX_B.SID_n = L4_MABX_B.SFunction1_o1_dm;
17990 L4_MABX_B.SetMode = L4_MABX_B.SFunction1_o2_az;
17991 L4_MABX_B.OpMode = L4_MABX_B.SFunction1_o3_fh;
17992 L4_MABX_B.VDOP = L4_MABX_B.SFunction1_o5_no;
17993 L4_MABX_B.TDOP = L4_MABX_B.SFunction1_o6_gq;
17994 L4_MABX_B.RX_status_j = L4_MABX_B.RX_status_p;
17995 } else {
17996 L4_MABX_B.SID_n = L4_MABX_B.SFunction1_o1_gi;
17997 L4_MABX_B.SetMode = L4_MABX_B.SFunction1_o2_j0;
17998 L4_MABX_B.OpMode = L4_MABX_B.SFunction1_o3_i5;
17999 L4_MABX_B.VDOP = L4_MABX_B.SFunction1_o5_iw;
18000 L4_MABX_B.TDOP = L4_MABX_B.SFunction1_o6_gf;
18001
18002 /* DataTypeConversion: '<S559>/Data Type Conversion3' */
18003 L4_MABX_B.RX_status_pl = (L4_MABX_B.SFunction1_o7_j != 0.0);
18004 L4_MABX_B.RX_status_j = L4_MABX_B.RX_status_pl;
18005 }
18006
18007 if (L4_MABX_B.RX_status_p) {
18008 /* DataTypeConversion: '<S559>/Data Type Conversion9' */
18009 L4_MABX_B.RX_time_d5 = L4_MABX_B.SFunction1_o8_ia;
18010 L4_MABX_B.RX_time_dg = L4_MABX_B.RX_time_d5;
18011
18012 /* DataTypeConversion: '<S559>/Data Type Conversion10' */
18013 L4_MABX_B.RX_delta_time_lu = L4_MABX_B.SFunction1_o9_n;
18014 L4_MABX_B.RX_delta_time_am = L4_MABX_B.RX_delta_time_lu;
18015 } else {
18016 /* DataTypeConversion: '<S559>/Data Type Conversion2' */
18017 L4_MABX_B.RX_time_ay = L4_MABX_B.SFunction1_o8_mf;
18018 L4_MABX_B.RX_time_dg = L4_MABX_B.RX_time_ay;
18019
18020 /* DataTypeConversion: '<S559>/Data Type Conversion1' */
18021 L4_MABX_B.RX_delta_time_cl = L4_MABX_B.SFunction1_o9_g4;
18022 L4_MABX_B.RX_delta_time_am = L4_MABX_B.RX_delta_time_cl;
18023 }
18024
18025 /* DataTypeConversion: '<S562>/Data Type Conversion10' */
18026 L4_MABX_B.RX_delta_time_o = L4_MABX_B.SFunction1_o7_i;
18027
18028 /* DataTypeConversion: '<S562>/Data Type Conversion8' */
18029 L4_MABX_B.RX_status_o2 = (L4_MABX_B.SFunction1_o5_bu != 0.0);
18030
18031 /* DataTypeConversion: '<S562>/Data Type Conversion9' */
18032 L4_MABX_B.RX_time_dv = L4_MABX_B.SFunction1_o6_k;
18033
18034 /* Switch: '<S429>/Switch' */
18035 if (L4_MABX_B.Operator_md) {
18036 ReAX_EchoedSteerWheelPos = L4_MABX_B.SFunction1_o2_dzy;
18037
18038 /* DataTypeConversion: '<S564>/Data Type Conversion8' */
18039 L4_MABX_B.RX_status_id = (L4_MABX_B.SFunction1_o3_mp != 0.0);
18040 L4_MABX_B.RX_status_pe = L4_MABX_B.RX_status_id;
18041
18042 /* DataTypeConversion: '<S564>/Data Type Conversion9' */
18043 L4_MABX_B.RX_time_k1 = L4_MABX_B.SFunction1_o4_mo;
18044 L4_MABX_B.RX_time_nb = L4_MABX_B.RX_time_k1;
18045
18046 /* DataTypeConversion: '<S564>/Data Type Conversion10' */
18047 L4_MABX_B.RX_delta_time_gx = L4_MABX_B.SFunction1_o5_cb;
18048 L4_MABX_B.RX_delta_time_c = L4_MABX_B.RX_delta_time_gx;
18049 } else {
18050 ReAX_EchoedSteerWheelPos = L4_MABX_B.SFunction1_o2_ns;
18051
18052 /* DataTypeConversion: '<S565>/Data Type Conversion8' */
18053 L4_MABX_B.RX_status_gn = (L4_MABX_B.SFunction1_o3_dx != 0.0);
18054 L4_MABX_B.RX_status_pe = L4_MABX_B.RX_status_gn;
18055
18056 /* DataTypeConversion: '<S565>/Data Type Conversion9' */
18057 L4_MABX_B.RX_time_dm1 = L4_MABX_B.SFunction1_o4_dw;
18058 L4_MABX_B.RX_time_nb = L4_MABX_B.RX_time_dm1;
18059
18060 /* DataTypeConversion: '<S565>/Data Type Conversion10' */
18061 L4_MABX_B.RX_delta_time_bz = L4_MABX_B.SFunction1_o5_m;
18062 L4_MABX_B.RX_delta_time_c = L4_MABX_B.RX_delta_time_bz;
18063 }
18064
18065 /* RelationalOperator: '<S601>/Operator' incorporates:
18066 * Constant: '<S432>/Constant'
18067 * Constant: '<S597>/Constant'
18068 */
18069 L4_MABX_B.Operator_hg5 = (CANR_PROPB_XPR_1_50_CHANNEL_APV ==
18070 L4_MABX_P.Constant_Value_pw);
18071
18072 /* Outputs for Enabled SubSystem: '<S594>/CAN_TYPE1_RX_M1_C1' incorporates:
18073 * EnablePort: '<S598>/Enable'
18074 */
18075 if (L4_MABX_B.Operator_hg5) {
18076 /* S-Function (rti_commonblock): '<S598>/S-Function1' */
18077 /* This comment workarounds a code generation problem */
18078
18079 /* dSPACE RTICAN RX Message Block: "PropB_XPR_1" Id:419387472 */
18080 {
18081 UInt32 *CAN_Msg;
18082 static dsfloat time_old = 0.0;
18083
18084 /* Read status and timestamp info (previous message) */
18085 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FF5850].timestamp !=
18086 time_old) {
18087 /* ... save timestamp info for the calculation of the RX status
18088 during the consecutive sample hit*/
18089 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FF5850].
18090 timestamp;
18091
18092 /* ... set the processed flag to one */
18093 L4_MABX_B.SFunction1_o3_c = 1.0;
18094 L4_MABX_B.SFunction1_o4_nu = (real_T)
18095 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FF5850].timestamp;
18096 L4_MABX_B.SFunction1_o5_i1 = (real_T)
18097 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FF5850].deltatime;
18098 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FF5850].data;
18099
18100 /* Decode CAN message */
18101 {
18102 {
18103 rtican_Signal_t CAN_Sgn;
18104
18105 /* ...... "EPBPCMInhibitStatusFeedback" (0|2, standard signal, unsigned int, little endian) */
18106 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18107 CAN_Sgn.UnsignedSgn &= 0x00000003;
18108 L4_MABX_B.SFunction1_o1_oa = ((real_T) CAN_Sgn.UnsignedSgn);
18109
18110 /* ...... "EPBPCMManualStatusFeedback" (2|2, standard signal, unsigned int, little endian) */
18111 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18112 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
18113 CAN_Sgn.UnsignedSgn &= 0x00000003;
18114 L4_MABX_B.SFunction1_o2_n0 = ((real_T) CAN_Sgn.UnsignedSgn);
18115 }
18116 }
18117 } else {
18118 /* set RX status to 0 because no new message has arrived */
18119 L4_MABX_B.SFunction1_o3_c = 0.0;
18120 }
18121 }
18122 }
18123
18124 /* End of Outputs for SubSystem: '<S594>/CAN_TYPE1_RX_M1_C1' */
18125
18126 /* RelationalOperator: '<S602>/Operator' incorporates:
18127 * Constant: '<S432>/Constant'
18128 * Constant: '<S597>/Constant1'
18129 */
18130 L4_MABX_B.Operator_jn = (CANR_PROPB_XPR_1_50_CHANNEL_APV ==
18131 L4_MABX_P.Constant1_Value_h0);
18132
18133 /* Outputs for Enabled SubSystem: '<S595>/CAN_TYPE1_RX_M1_C2' incorporates:
18134 * EnablePort: '<S599>/Enable'
18135 */
18136 if (L4_MABX_B.Operator_jn) {
18137 /* S-Function (rti_commonblock): '<S599>/S-Function1' */
18138 /* This comment workarounds a code generation problem */
18139
18140 /* dSPACE RTICAN RX Message Block: "PropB_XPR_1" Id:419387472 */
18141 {
18142 UInt32 *CAN_Msg;
18143 static dsfloat time_old = 0.0;
18144
18145 /* Read status and timestamp info (previous message) */
18146 if (can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FF5850].timestamp !=
18147 time_old) {
18148 /* ... save timestamp info for the calculation of the RX status
18149 during the consecutive sample hit*/
18150 time_old = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FF5850].
18151 timestamp;
18152
18153 /* ... set the processed flag to one */
18154 L4_MABX_B.SFunction1_o3_n0 = 1.0;
18155 L4_MABX_B.SFunction1_o4_nc = (real_T)
18156 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FF5850].timestamp;
18157 L4_MABX_B.SFunction1_o5_c = (real_T)
18158 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FF5850].deltatime;
18159 CAN_Msg = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FF5850].data;
18160
18161 /* Decode CAN message */
18162 {
18163 {
18164 rtican_Signal_t CAN_Sgn;
18165
18166 /* ...... "EPBPCMInhibitStatusFeedback" (0|2, standard signal, unsigned int, little endian) */
18167 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18168 CAN_Sgn.UnsignedSgn &= 0x00000003;
18169 L4_MABX_B.SFunction1_o1_l4 = ((real_T) CAN_Sgn.UnsignedSgn);
18170
18171 /* ...... "EPBPCMManualStatusFeedback" (2|2, standard signal, unsigned int, little endian) */
18172 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18173 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
18174 CAN_Sgn.UnsignedSgn &= 0x00000003;
18175 L4_MABX_B.SFunction1_o2_g2 = ((real_T) CAN_Sgn.UnsignedSgn);
18176 }
18177 }
18178 } else {
18179 /* set RX status to 0 because no new message has arrived */
18180 L4_MABX_B.SFunction1_o3_n0 = 0.0;
18181 }
18182 }
18183 }
18184
18185 /* End of Outputs for SubSystem: '<S595>/CAN_TYPE1_RX_M1_C2' */
18186
18187 /* RelationalOperator: '<S603>/Operator' incorporates:
18188 * Constant: '<S432>/Constant'
18189 * Constant: '<S597>/Constant2'
18190 */
18191 L4_MABX_B.Operator_ot = (CANR_PROPB_XPR_1_50_CHANNEL_APV ==
18192 L4_MABX_P.Constant2_Value_pd);
18193
18194 /* Outputs for Enabled SubSystem: '<S596>/CAN_TYPE1_RX_M2_C1' incorporates:
18195 * EnablePort: '<S600>/Enable'
18196 */
18197 if (L4_MABX_B.Operator_ot) {
18198 /* S-Function (rti_commonblock): '<S600>/S-Function1' */
18199 /* This comment workarounds a code generation problem */
18200
18201 /* dSPACE RTICAN RX Message Block: "PropB_XPR_1" Id:419387472 */
18202 {
18203 UInt32 *CAN_Msg;
18204 static dsfloat time_old = 0.0;
18205
18206 /* Read status and timestamp info (previous message) */
18207 if (can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF5850].timestamp !=
18208 time_old) {
18209 /* ... save timestamp info for the calculation of the RX status
18210 during the consecutive sample hit*/
18211 time_old = can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF5850].
18212 timestamp;
18213
18214 /* ... set the processed flag to one */
18215 L4_MABX_B.SFunction1_o3_nr = 1.0;
18216 L4_MABX_B.SFunction1_o4_ev = (real_T)
18217 can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF5850].timestamp;
18218 L4_MABX_B.SFunction1_o5_f4 = (real_T)
18219 can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF5850].deltatime;
18220 CAN_Msg = can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF5850].data;
18221
18222 /* Decode CAN message */
18223 {
18224 {
18225 rtican_Signal_t CAN_Sgn;
18226
18227 /* ...... "EPBPCMInhibitStatusFeedback" (0|2, standard signal, unsigned int, little endian) */
18228 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18229 CAN_Sgn.UnsignedSgn &= 0x00000003;
18230 L4_MABX_B.SFunction1_o1_oe = ((real_T) CAN_Sgn.UnsignedSgn);
18231
18232 /* ...... "EPBPCMManualStatusFeedback" (2|2, standard signal, unsigned int, little endian) */
18233 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18234 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
18235 CAN_Sgn.UnsignedSgn &= 0x00000003;
18236 L4_MABX_B.SFunction1_o2_ix = ((real_T) CAN_Sgn.UnsignedSgn);
18237 }
18238 }
18239 } else {
18240 /* set RX status to 0 because no new message has arrived */
18241 L4_MABX_B.SFunction1_o3_nr = 0.0;
18242 }
18243 }
18244 }
18245
18246 /* End of Outputs for SubSystem: '<S596>/CAN_TYPE1_RX_M2_C1' */
18247
18248 /* DataTypeConversion: '<S596>/Data Type Conversion' */
18249 PositionFinalLimited = L4_MABX_B.SFunction1_o1_oe;
18250 if (PositionFinalLimited < 256.0) {
18251 if (PositionFinalLimited >= 0.0) {
18252 starting_index = (uint8_T)PositionFinalLimited;
18253 } else {
18254 starting_index = 0U;
18255 }
18256 } else {
18257 starting_index = MAX_uint8_T;
18258 }
18259
18260 L4_MABX_B.DataTypeConversion_mz = starting_index;
18261
18262 /* End of DataTypeConversion: '<S596>/Data Type Conversion' */
18263
18264 /* DataTypeConversion: '<S596>/Data Type Conversion2' */
18265 L4_MABX_B.EPBPCMInhibitStatusFeedback = (ENUM_XPR_FEEDBACK_T)
18266 L4_MABX_B.DataTypeConversion_mz;
18267
18268 /* MultiPortSwitch: '<S432>/Multiport_Switch' incorporates:
18269 * Constant: '<S432>/Constant'
18270 */
18271 switch (CANR_PROPB_XPR_1_50_CHANNEL_APV) {
18272 case ENUM_CAN_RX_T_RX_CAN_1:
18273 /* DataTypeConversion: '<S594>/Data Type Conversion' */
18274 PositionFinalLimited = L4_MABX_B.SFunction1_o1_oa;
18275 if (PositionFinalLimited < 256.0) {
18276 if (PositionFinalLimited >= 0.0) {
18277 starting_index = (uint8_T)PositionFinalLimited;
18278 } else {
18279 starting_index = 0U;
18280 }
18281 } else {
18282 starting_index = MAX_uint8_T;
18283 }
18284
18285 L4_MABX_B.DataTypeConversion_kty = starting_index;
18286
18287 /* End of DataTypeConversion: '<S594>/Data Type Conversion' */
18288
18289 /* DataTypeConversion: '<S594>/Data Type Conversion2' */
18290 L4_MABX_B.EPBPCMInhibitStatusFeedback_i = (ENUM_XPR_FEEDBACK_T)
18291 L4_MABX_B.DataTypeConversion_kty;
18292 L4_MABX_B.EPBPCMInhibitStatusFeedback_n =
18293 L4_MABX_B.EPBPCMInhibitStatusFeedback_i;
18294 break;
18295
18296 case ENUM_CAN_RX_T_RX_CAN_2:
18297 /* DataTypeConversion: '<S595>/Data Type Conversion' */
18298 PositionFinalLimited = L4_MABX_B.SFunction1_o1_l4;
18299 if (PositionFinalLimited < 256.0) {
18300 if (PositionFinalLimited >= 0.0) {
18301 starting_index = (uint8_T)PositionFinalLimited;
18302 } else {
18303 starting_index = 0U;
18304 }
18305 } else {
18306 starting_index = MAX_uint8_T;
18307 }
18308
18309 L4_MABX_B.DataTypeConversion_i2 = starting_index;
18310
18311 /* End of DataTypeConversion: '<S595>/Data Type Conversion' */
18312
18313 /* DataTypeConversion: '<S595>/Data Type Conversion2' */
18314 L4_MABX_B.EPBPCMInhibitStatusFeedback_k = (ENUM_XPR_FEEDBACK_T)
18315 L4_MABX_B.DataTypeConversion_i2;
18316 L4_MABX_B.EPBPCMInhibitStatusFeedback_n =
18317 L4_MABX_B.EPBPCMInhibitStatusFeedback_k;
18318 break;
18319
18320 case ENUM_CAN_RX_T_RX_CAN_3:
18321 L4_MABX_B.EPBPCMInhibitStatusFeedback_n =
18322 L4_MABX_B.EPBPCMInhibitStatusFeedback;
18323 break;
18324
18325 case ENUM_CAN_RX_T_RX_CAN_4:
18326 L4_MABX_B.EPBPCMInhibitStatusFeedback_n =
18327 L4_MABX_B.EPBPCMInhibitStatusFeedback;
18328 break;
18329
18330 case ENUM_CAN_RX_T_RX_CAN_5:
18331 L4_MABX_B.EPBPCMInhibitStatusFeedback_n =
18332 L4_MABX_B.EPBPCMInhibitStatusFeedback;
18333 break;
18334
18335 case ENUM_CAN_RX_T_RX_CAN_6:
18336 L4_MABX_B.EPBPCMInhibitStatusFeedback_n =
18337 L4_MABX_B.EPBPCMInhibitStatusFeedback;
18338 break;
18339
18340 default:
18341 L4_MABX_B.EPBPCMInhibitStatusFeedback_n =
18342 L4_MABX_B.EPBPCMInhibitStatusFeedback;
18343 break;
18344 }
18345
18346 /* DataTypeConversion: '<S596>/Data Type Conversion1' */
18347 PositionFinalLimited = L4_MABX_B.SFunction1_o2_ix;
18348 if (PositionFinalLimited < 256.0) {
18349 if (PositionFinalLimited >= 0.0) {
18350 starting_index = (uint8_T)PositionFinalLimited;
18351 } else {
18352 starting_index = 0U;
18353 }
18354 } else {
18355 starting_index = MAX_uint8_T;
18356 }
18357
18358 L4_MABX_B.DataTypeConversion1_n3o = starting_index;
18359
18360 /* End of DataTypeConversion: '<S596>/Data Type Conversion1' */
18361
18362 /* DataTypeConversion: '<S596>/Data Type Conversion3' */
18363 L4_MABX_B.EPBPCMManualStatusFeedback = (ENUM_XPR_FEEDBACK_T)
18364 L4_MABX_B.DataTypeConversion1_n3o;
18365
18366 /* MultiPortSwitch: '<S432>/Multiport_Switch' incorporates:
18367 * Constant: '<S432>/Constant'
18368 */
18369 switch (CANR_PROPB_XPR_1_50_CHANNEL_APV) {
18370 case ENUM_CAN_RX_T_RX_CAN_1:
18371 /* DataTypeConversion: '<S594>/Data Type Conversion1' */
18372 PositionFinalLimited = L4_MABX_B.SFunction1_o2_n0;
18373 if (PositionFinalLimited < 256.0) {
18374 if (PositionFinalLimited >= 0.0) {
18375 starting_index = (uint8_T)PositionFinalLimited;
18376 } else {
18377 starting_index = 0U;
18378 }
18379 } else {
18380 starting_index = MAX_uint8_T;
18381 }
18382
18383 L4_MABX_B.DataTypeConversion1_ay = starting_index;
18384
18385 /* End of DataTypeConversion: '<S594>/Data Type Conversion1' */
18386
18387 /* DataTypeConversion: '<S594>/Data Type Conversion3' */
18388 L4_MABX_B.EPBPCMManualStatusFeedback_p = (ENUM_XPR_FEEDBACK_T)
18389 L4_MABX_B.DataTypeConversion1_ay;
18390 L4_MABX_B.EPBPCMManualStatusFeedback_m =
18391 L4_MABX_B.EPBPCMManualStatusFeedback_p;
18392 break;
18393
18394 case ENUM_CAN_RX_T_RX_CAN_2:
18395 /* DataTypeConversion: '<S595>/Data Type Conversion1' */
18396 PositionFinalLimited = L4_MABX_B.SFunction1_o2_g2;
18397 if (PositionFinalLimited < 256.0) {
18398 if (PositionFinalLimited >= 0.0) {
18399 starting_index = (uint8_T)PositionFinalLimited;
18400 } else {
18401 starting_index = 0U;
18402 }
18403 } else {
18404 starting_index = MAX_uint8_T;
18405 }
18406
18407 L4_MABX_B.DataTypeConversion1_om = starting_index;
18408
18409 /* End of DataTypeConversion: '<S595>/Data Type Conversion1' */
18410
18411 /* DataTypeConversion: '<S595>/Data Type Conversion3' */
18412 L4_MABX_B.EPBPCMManualStatusFeedback_f = (ENUM_XPR_FEEDBACK_T)
18413 L4_MABX_B.DataTypeConversion1_om;
18414 L4_MABX_B.EPBPCMManualStatusFeedback_m =
18415 L4_MABX_B.EPBPCMManualStatusFeedback_f;
18416 break;
18417
18418 case ENUM_CAN_RX_T_RX_CAN_3:
18419 L4_MABX_B.EPBPCMManualStatusFeedback_m =
18420 L4_MABX_B.EPBPCMManualStatusFeedback;
18421 break;
18422
18423 case ENUM_CAN_RX_T_RX_CAN_4:
18424 L4_MABX_B.EPBPCMManualStatusFeedback_m =
18425 L4_MABX_B.EPBPCMManualStatusFeedback;
18426 break;
18427
18428 case ENUM_CAN_RX_T_RX_CAN_5:
18429 L4_MABX_B.EPBPCMManualStatusFeedback_m =
18430 L4_MABX_B.EPBPCMManualStatusFeedback;
18431 break;
18432
18433 case ENUM_CAN_RX_T_RX_CAN_6:
18434 L4_MABX_B.EPBPCMManualStatusFeedback_m =
18435 L4_MABX_B.EPBPCMManualStatusFeedback;
18436 break;
18437
18438 default:
18439 L4_MABX_B.EPBPCMManualStatusFeedback_m =
18440 L4_MABX_B.EPBPCMManualStatusFeedback;
18441 break;
18442 }
18443
18444 /* DataTypeConversion: '<S596>/Data Type Conversion8' */
18445 L4_MABX_B.RX_status_ip = (L4_MABX_B.SFunction1_o3_nr != 0.0);
18446
18447 /* MultiPortSwitch: '<S432>/Multiport_Switch' incorporates:
18448 * Constant: '<S432>/Constant'
18449 */
18450 switch (CANR_PROPB_XPR_1_50_CHANNEL_APV) {
18451 case ENUM_CAN_RX_T_RX_CAN_1:
18452 /* DataTypeConversion: '<S594>/Data Type Conversion8' */
18453 L4_MABX_B.RX_status_l0 = (L4_MABX_B.SFunction1_o3_c != 0.0);
18454 L4_MABX_B.RX_status_i0s = L4_MABX_B.RX_status_l0;
18455 break;
18456
18457 case ENUM_CAN_RX_T_RX_CAN_2:
18458 /* DataTypeConversion: '<S595>/Data Type Conversion8' */
18459 L4_MABX_B.RX_status_m3 = (L4_MABX_B.SFunction1_o3_n0 != 0.0);
18460 L4_MABX_B.RX_status_i0s = L4_MABX_B.RX_status_m3;
18461 break;
18462
18463 case ENUM_CAN_RX_T_RX_CAN_3:
18464 L4_MABX_B.RX_status_i0s = L4_MABX_B.RX_status_ip;
18465 break;
18466
18467 case ENUM_CAN_RX_T_RX_CAN_4:
18468 L4_MABX_B.RX_status_i0s = L4_MABX_B.RX_status_ip;
18469 break;
18470
18471 case ENUM_CAN_RX_T_RX_CAN_5:
18472 L4_MABX_B.RX_status_i0s = L4_MABX_B.RX_status_ip;
18473 break;
18474
18475 case ENUM_CAN_RX_T_RX_CAN_6:
18476 L4_MABX_B.RX_status_i0s = L4_MABX_B.RX_status_ip;
18477 break;
18478
18479 default:
18480 L4_MABX_B.RX_status_i0s = L4_MABX_B.RX_status_ip;
18481 break;
18482 }
18483
18484 /* DataTypeConversion: '<S596>/Data Type Conversion9' */
18485 L4_MABX_B.RX_time_g = L4_MABX_B.SFunction1_o4_ev;
18486
18487 /* MultiPortSwitch: '<S432>/Multiport_Switch' incorporates:
18488 * Constant: '<S432>/Constant'
18489 */
18490 switch (CANR_PROPB_XPR_1_50_CHANNEL_APV) {
18491 case ENUM_CAN_RX_T_RX_CAN_1:
18492 /* DataTypeConversion: '<S594>/Data Type Conversion9' */
18493 L4_MABX_B.RX_time_jf = L4_MABX_B.SFunction1_o4_nu;
18494 L4_MABX_B.RX_time_jz = L4_MABX_B.RX_time_jf;
18495 break;
18496
18497 case ENUM_CAN_RX_T_RX_CAN_2:
18498 /* DataTypeConversion: '<S595>/Data Type Conversion9' */
18499 L4_MABX_B.RX_time_dp = L4_MABX_B.SFunction1_o4_nc;
18500 L4_MABX_B.RX_time_jz = L4_MABX_B.RX_time_dp;
18501 break;
18502
18503 case ENUM_CAN_RX_T_RX_CAN_3:
18504 L4_MABX_B.RX_time_jz = L4_MABX_B.RX_time_g;
18505 break;
18506
18507 case ENUM_CAN_RX_T_RX_CAN_4:
18508 L4_MABX_B.RX_time_jz = L4_MABX_B.RX_time_g;
18509 break;
18510
18511 case ENUM_CAN_RX_T_RX_CAN_5:
18512 L4_MABX_B.RX_time_jz = L4_MABX_B.RX_time_g;
18513 break;
18514
18515 case ENUM_CAN_RX_T_RX_CAN_6:
18516 L4_MABX_B.RX_time_jz = L4_MABX_B.RX_time_g;
18517 break;
18518
18519 default:
18520 L4_MABX_B.RX_time_jz = L4_MABX_B.RX_time_g;
18521 break;
18522 }
18523
18524 /* DataTypeConversion: '<S596>/Data Type Conversion10' */
18525 L4_MABX_B.RX_delta_time_hb = L4_MABX_B.SFunction1_o5_f4;
18526
18527 /* MultiPortSwitch: '<S432>/Multiport_Switch' incorporates:
18528 * Constant: '<S432>/Constant'
18529 */
18530 switch (CANR_PROPB_XPR_1_50_CHANNEL_APV) {
18531 case ENUM_CAN_RX_T_RX_CAN_1:
18532 /* DataTypeConversion: '<S594>/Data Type Conversion10' */
18533 L4_MABX_B.RX_delta_time_oq = L4_MABX_B.SFunction1_o5_i1;
18534 L4_MABX_B.RX_delta_time_hm = L4_MABX_B.RX_delta_time_oq;
18535 break;
18536
18537 case ENUM_CAN_RX_T_RX_CAN_2:
18538 /* DataTypeConversion: '<S595>/Data Type Conversion10' */
18539 L4_MABX_B.RX_delta_time_k3 = L4_MABX_B.SFunction1_o5_c;
18540 L4_MABX_B.RX_delta_time_hm = L4_MABX_B.RX_delta_time_k3;
18541 break;
18542
18543 case ENUM_CAN_RX_T_RX_CAN_3:
18544 L4_MABX_B.RX_delta_time_hm = L4_MABX_B.RX_delta_time_hb;
18545 break;
18546
18547 case ENUM_CAN_RX_T_RX_CAN_4:
18548 L4_MABX_B.RX_delta_time_hm = L4_MABX_B.RX_delta_time_hb;
18549 break;
18550
18551 case ENUM_CAN_RX_T_RX_CAN_5:
18552 L4_MABX_B.RX_delta_time_hm = L4_MABX_B.RX_delta_time_hb;
18553 break;
18554
18555 case ENUM_CAN_RX_T_RX_CAN_6:
18556 L4_MABX_B.RX_delta_time_hm = L4_MABX_B.RX_delta_time_hb;
18557 break;
18558
18559 default:
18560 L4_MABX_B.RX_delta_time_hm = L4_MABX_B.RX_delta_time_hb;
18561 break;
18562 }
18563
18564 /* RelationalOperator: '<S604>/Operator' incorporates:
18565 * Constant: '<S432>/Constant'
18566 * Constant: '<S597>/Constant3'
18567 */
18568 L4_MABX_B.Operator_ko = (CANR_PROPB_XPR_1_50_CHANNEL_APV ==
18569 L4_MABX_P.Constant3_Value_jt);
18570
18571 /* RelationalOperator: '<S605>/Operator' incorporates:
18572 * Constant: '<S432>/Constant'
18573 * Constant: '<S597>/Constant4'
18574 */
18575 L4_MABX_B.Operator_lw = (CANR_PROPB_XPR_1_50_CHANNEL_APV ==
18576 L4_MABX_P.Constant4_Value_ob);
18577
18578 /* RelationalOperator: '<S606>/Operator' incorporates:
18579 * Constant: '<S432>/Constant'
18580 * Constant: '<S597>/Constant5'
18581 */
18582 L4_MABX_B.Operator_nq = (CANR_PROPB_XPR_1_50_CHANNEL_APV ==
18583 L4_MABX_P.Constant5_Value_j);
18584
18585 /* Outputs for Enabled SubSystem: '<S607>/PX2_LaneEdgeLeft' incorporates:
18586 * EnablePort: '<S608>/Enable'
18587 */
18588 /* Constant: '<S433>/Constant' */
18589 if (L4_MABX_P.Constant_Value_ao) {
18590 /* S-Function (rti_commonblock): '<S608>/S-Function1' */
18591 /* This comment workarounds a code generation problem */
18592
18593 /* dSPACE RTICAN RX Message Block: "PX2_LaneEdgeLeft" Id:770 */
18594 {
18595 UInt32 *CAN_Msg;
18596 static dsfloat time_old = 0.0;
18597
18598 /* Read status and timestamp info (previous message) */
18599 if (can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x302].timestamp !=
18600 time_old) {
18601 /* ... save timestamp info for the calculation of the RX status
18602 during the consecutive sample hit*/
18603 time_old = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x302].timestamp;
18604
18605 /* ... set the processed flag to one */
18606 L4_MABX_B.SFunction1_o4_kb = 1.0;
18607 L4_MABX_B.SFunction1_o5_he = (real_T)
18608 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x302].timestamp;
18609 L4_MABX_B.SFunction1_o6_p = (real_T)
18610 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x302].deltatime;
18611 CAN_Msg = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x302].data;
18612
18613 /* Decode CAN message */
18614 {
18615 {
18616 rtican_Signal_t CAN_Sgn;
18617
18618 /* ...... "PX2_LaneEdgeLeftAngle" (0|16, standard signal, signed int, little endian) */
18619 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18620 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
18621 CAN_Sgn.SignedSgn &= 0x0000FFFF;
18622 if (CAN_Sgn.SignedSgn >> 15) {
18623 CAN_Sgn.SignedSgn |= 0xFFFF0000;
18624 }
18625
18626 L4_MABX_B.SFunction1_o1_nm = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
18627
18628 /* ...... "PX2_LaneEdgeLeftNumPoints" (16|8, standard signal, unsigned int, little endian) */
18629 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
18630 CAN_Sgn.UnsignedSgn &= 0x000000FF;
18631 L4_MABX_B.SFunction1_o2_ki = ((real_T) CAN_Sgn.UnsignedSgn);
18632
18633 /* ...... "PX2_LaneEdgeLeftPosition" (24|16, standard signal, signed int, little endian) */
18634 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
18635 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
18636 CAN_Sgn.SignedSgn &= 0x0000FFFF;
18637 if (CAN_Sgn.SignedSgn >> 15) {
18638 CAN_Sgn.SignedSgn |= 0xFFFF0000;
18639 }
18640
18641 L4_MABX_B.SFunction1_o3_pf = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn) );
18642 }
18643 }
18644 } else {
18645 /* set RX status to 0 because no new message has arrived */
18646 L4_MABX_B.SFunction1_o4_kb = 0.0;
18647 }
18648 }
18649 }
18650
18651 /* End of Outputs for SubSystem: '<S607>/PX2_LaneEdgeLeft' */
18652
18653 /* DataTypeConversion: '<S607>/Data Type Conversion1' */
18654 L4_MABX_B.RX_delta_time_bu = L4_MABX_B.SFunction1_o6_p;
18655
18656 /* DataTypeConversion: '<S607>/Data Type Conversion10' */
18657 L4_MABX_B.RX_delta_time_py = L4_MABX_B.SFunction1_o7_b;
18658
18659 /* DataTypeConversion: '<S607>/Data Type Conversion2' */
18660 L4_MABX_B.RX_status_m = (L4_MABX_B.SFunction1_o4_kb != 0.0);
18661
18662 /* DataTypeConversion: '<S607>/Data Type Conversion3' */
18663 L4_MABX_B.RX_time_ff = L4_MABX_B.SFunction1_o5_he;
18664
18665 /* Outputs for Enabled SubSystem: '<S607>/PX2_LaneEdgeRight' incorporates:
18666 * EnablePort: '<S609>/Enable'
18667 */
18668 /* Constant: '<S433>/Constant' */
18669 if (L4_MABX_P.Constant_Value_ao) {
18670 /* S-Function (rti_commonblock): '<S609>/S-Function1' */
18671 /* This comment workarounds a code generation problem */
18672
18673 /* dSPACE RTICAN RX Message Block: "PX2_LaneEdgeRight" Id:771 */
18674 {
18675 UInt32 *CAN_Msg;
18676 static dsfloat time_old = 0.0;
18677
18678 /* Read status and timestamp info (previous message) */
18679 if (can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x303].timestamp !=
18680 time_old) {
18681 /* ... save timestamp info for the calculation of the RX status
18682 during the consecutive sample hit*/
18683 time_old = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x303].timestamp;
18684
18685 /* ... set the processed flag to one */
18686 L4_MABX_B.SFunction1_o4_ju = 1.0;
18687 L4_MABX_B.SFunction1_o5_os = (real_T)
18688 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x303].timestamp;
18689 L4_MABX_B.SFunction1_o6_d = (real_T)
18690 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x303].deltatime;
18691 CAN_Msg = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x303].data;
18692
18693 /* Decode CAN message */
18694 {
18695 {
18696 rtican_Signal_t CAN_Sgn;
18697
18698 /* ...... "PX2_LaneEdgeRightAngle" (0|16, standard signal, signed int, little endian) */
18699 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18700 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
18701 CAN_Sgn.SignedSgn &= 0x0000FFFF;
18702 if (CAN_Sgn.SignedSgn >> 15) {
18703 CAN_Sgn.SignedSgn |= 0xFFFF0000;
18704 }
18705
18706 L4_MABX_B.SFunction1_o1_j2 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
18707
18708 /* ...... "PX2_LaneEdgeRightNumPoints" (16|8, standard signal, unsigned int, little endian) */
18709 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
18710 CAN_Sgn.UnsignedSgn &= 0x000000FF;
18711 L4_MABX_B.SFunction1_o2_lg = ((real_T) CAN_Sgn.UnsignedSgn);
18712
18713 /* ...... "PX2_LaneEdgeRightPosition" (24|16, standard signal, signed int, little endian) */
18714 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
18715 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
18716 CAN_Sgn.SignedSgn &= 0x0000FFFF;
18717 if (CAN_Sgn.SignedSgn >> 15) {
18718 CAN_Sgn.SignedSgn |= 0xFFFF0000;
18719 }
18720
18721 L4_MABX_B.SFunction1_o3_bb = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn) );
18722 }
18723 }
18724 } else {
18725 /* set RX status to 0 because no new message has arrived */
18726 L4_MABX_B.SFunction1_o4_ju = 0.0;
18727 }
18728 }
18729 }
18730
18731 /* End of Outputs for SubSystem: '<S607>/PX2_LaneEdgeRight' */
18732
18733 /* DataTypeConversion: '<S607>/Data Type Conversion4' */
18734 L4_MABX_B.RX_delta_time_n = L4_MABX_B.SFunction1_o6_d;
18735
18736 /* DataTypeConversion: '<S607>/Data Type Conversion5' */
18737 L4_MABX_B.RX_status_l2 = (L4_MABX_B.SFunction1_o4_ju != 0.0);
18738
18739 /* DataTypeConversion: '<S607>/Data Type Conversion6' */
18740 L4_MABX_B.RX_time_kb = L4_MABX_B.SFunction1_o5_os;
18741
18742 /* DataTypeConversion: '<S607>/Data Type Conversion8' */
18743 L4_MABX_B.RX_status_pex = (L4_MABX_B.SFunction1_o5_eu != 0.0);
18744
18745 /* DataTypeConversion: '<S607>/Data Type Conversion9' */
18746 L4_MABX_B.RX_time_fv = L4_MABX_B.SFunction1_o6_hm;
18747
18748 /* Switch: '<S611>/Switch' */
18749 if (L4_MABX_B.If_Then_Else.Switch) {
18750 /* DataTypeConversion: '<S611>/Data Type Conversion8' */
18751 L4_MABX_B.RX_status_gl = (L4_MABX_B.SFunction1_o3_bk != 0.0);
18752 L4_MABX_B.RX_status_hj = L4_MABX_B.RX_status_gl;
18753
18754 /* DataTypeConversion: '<S611>/Data Type Conversion9' */
18755 L4_MABX_B.RX_time_dx = L4_MABX_B.SFunction1_o4_mu;
18756 L4_MABX_B.RX_time_bx = L4_MABX_B.RX_time_dx;
18757
18758 /* DataTypeConversion: '<S611>/Data Type Conversion10' */
18759 L4_MABX_B.RX_delta_time_f4 = L4_MABX_B.SFunction1_o5_e;
18760 L4_MABX_B.RX_delta_time_i = L4_MABX_B.RX_delta_time_f4;
18761 } else {
18762 /* DataTypeConversion: '<S611>/Data Type Conversion3' */
18763 L4_MABX_B.RX_status_pz = (L4_MABX_B.SFunction1_o3_ew != 0.0);
18764 L4_MABX_B.RX_status_hj = L4_MABX_B.RX_status_pz;
18765
18766 /* DataTypeConversion: '<S611>/Data Type Conversion2' */
18767 L4_MABX_B.RX_time_pb = L4_MABX_B.SFunction1_o4_cn;
18768 L4_MABX_B.RX_time_bx = L4_MABX_B.RX_time_pb;
18769
18770 /* DataTypeConversion: '<S611>/Data Type Conversion1' */
18771 L4_MABX_B.RX_delta_time_kk = L4_MABX_B.SFunction1_o5_k;
18772 L4_MABX_B.RX_delta_time_i = L4_MABX_B.RX_delta_time_kk;
18773 }
18774
18775 /* DataTypeConversion: '<S614>/Data Type Conversion1' */
18776 L4_MABX_B.XPR1ControlStatus = L4_MABX_B.SFunction1_o6_h;
18777
18778 /* DataTypeConversion: '<S614>/Data Type Conversion10' */
18779 L4_MABX_B.RX_delta_time_fl = L4_MABX_B.SFunction1_o13_m;
18780
18781 /* DataTypeConversion: '<S614>/Data Type Conversion2' */
18782 L4_MABX_B.XPR2ControlStatus = L4_MABX_B.SFunction1_o7_p;
18783
18784 /* DataTypeConversion: '<S614>/Data Type Conversion3' */
18785 L4_MABX_B.XPR3ControlStatus = L4_MABX_B.SFunction1_o8_pt;
18786
18787 /* DataTypeConversion: '<S614>/Data Type Conversion8' */
18788 L4_MABX_B.RX_status_pw = (L4_MABX_B.SFunction1_o11_f != 0.0);
18789
18790 /* DataTypeConversion: '<S614>/Data Type Conversion9' */
18791 L4_MABX_B.RX_time_acs = L4_MABX_B.SFunction1_o12_f;
18792
18793 /* DataTypeConversion: '<S616>/Data Type Conversion10' */
18794 L4_MABX_B.RX_delta_time_of = L4_MABX_B.SFunction1_o10_m;
18795
18796 /* DataTypeConversion: '<S616>/Data Type Conversion8' */
18797 L4_MABX_B.RX_status_lf = (L4_MABX_B.SFunction1_o8_ge != 0.0);
18798
18799 /* DataTypeConversion: '<S616>/Data Type Conversion9' */
18800 L4_MABX_B.RX_time_gi = L4_MABX_B.SFunction1_o9_c;
18801
18802 /* Outputs for Enabled SubSystem: '<S618>/PX2_MapLaneEgoLeft' incorporates:
18803 * EnablePort: '<S619>/Enable'
18804 */
18805 /* Constant: '<S437>/CAN_RX-Enable_PX2_MapLaneEgoLeft' */
18806 if (L4_MABX_P.CAN_RXEnable_PX2_MapLaneEgoLeft) {
18807 /* S-Function (rti_commonblock): '<S619>/S-Function1' */
18808 /* This comment workarounds a code generation problem */
18809
18810 /* dSPACE RTICAN RX Message Block: "PX2_MapLaneEgoLeft" Id:1542 */
18811 {
18812 UInt32 *CAN_Msg;
18813 static dsfloat time_old = 0.0;
18814
18815 /* Read status and timestamp info (previous message) */
18816 if (can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x606].timestamp !=
18817 time_old) {
18818 /* ... save timestamp info for the calculation of the RX status
18819 during the consecutive sample hit*/
18820 time_old = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x606].timestamp;
18821
18822 /* ... set the processed flag to one */
18823 L4_MABX_B.SFunction1_o7_o = 1.0;
18824 L4_MABX_B.SFunction1_o8_i = (real_T)
18825 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x606].timestamp;
18826 L4_MABX_B.SFunction1_o9_m = (real_T)
18827 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x606].deltatime;
18828 CAN_Msg = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x606].data;
18829
18830 /* Decode CAN message */
18831 {
18832 {
18833 rtican_Signal_t CAN_Sgn;
18834
18835 /* ...... "PX2_MapLaneNearPos" (0|16, standard signal, signed int, little endian) */
18836 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18837 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
18838 CAN_Sgn.SignedSgn &= 0x0000FFFF;
18839 if (CAN_Sgn.SignedSgn >> 15) {
18840 CAN_Sgn.SignedSgn |= 0xFFFF0000;
18841 }
18842
18843 L4_MABX_B.SFunction1_o1_ld = 0.00390625 * ( ((real_T)
18844 CAN_Sgn.SignedSgn) );
18845
18846 /* ...... "PX2_MapLaneMidPos" (16|16, standard signal, signed int, little endian) */
18847 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
18848 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
18849 CAN_Sgn.SignedSgn &= 0x0000FFFF;
18850 if (CAN_Sgn.SignedSgn >> 15) {
18851 CAN_Sgn.SignedSgn |= 0xFFFF0000;
18852 }
18853
18854 L4_MABX_B.SFunction1_o2_do = 0.00390625 * ( ((real_T)
18855 CAN_Sgn.SignedSgn) );
18856
18857 /* ...... "PX2_MapLaneFarPos" (32|16, standard signal, signed int, little endian) */
18858 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
18859 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
18860 CAN_Sgn.SignedSgn &= 0x0000FFFF;
18861 if (CAN_Sgn.SignedSgn >> 15) {
18862 CAN_Sgn.SignedSgn |= 0xFFFF0000;
18863 }
18864
18865 L4_MABX_B.SFunction1_o3_p3 = 0.00390625 * ( ((real_T)
18866 CAN_Sgn.SignedSgn) );
18867
18868 /* ...... "PX2_EgoLaneNearPosValid" (48|2, standard signal, unsigned int, little endian) */
18869 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
18870 CAN_Sgn.UnsignedSgn &= 0x00000003;
18871 L4_MABX_B.SFunction1_o4_ot = ((real_T) CAN_Sgn.UnsignedSgn);
18872
18873 /* ...... "PX2_EgoLaneMidPosValid" (50|2, standard signal, unsigned int, little endian) */
18874 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
18875 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
18876 CAN_Sgn.UnsignedSgn &= 0x00000003;
18877 L4_MABX_B.SFunction1_o5_f = ((real_T) CAN_Sgn.UnsignedSgn);
18878
18879 /* ...... "PX2_EgoLaneFarPosValid" (52|2, standard signal, unsigned int, little endian) */
18880 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
18881 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
18882 CAN_Sgn.UnsignedSgn &= 0x00000003;
18883 L4_MABX_B.SFunction1_o6_e = ((real_T) CAN_Sgn.UnsignedSgn);
18884 }
18885 }
18886 } else {
18887 /* set RX status to 0 because no new message has arrived */
18888 L4_MABX_B.SFunction1_o7_o = 0.0;
18889 }
18890 }
18891 }
18892
18893 /* End of Constant: '<S437>/CAN_RX-Enable_PX2_MapLaneEgoLeft' */
18894 /* End of Outputs for SubSystem: '<S618>/PX2_MapLaneEgoLeft' */
18895
18896 /* DataTypeConversion: '<S618>/Data Type Conversion10' */
18897 L4_MABX_B.RX_delta_time_n2 = L4_MABX_B.SFunction1_o9_m;
18898
18899 /* DataTypeConversion: '<S618>/Data Type Conversion8' */
18900 L4_MABX_B.RX_status_j3 = (L4_MABX_B.SFunction1_o7_o != 0.0);
18901
18902 /* DataTypeConversion: '<S618>/Data Type Conversion9' */
18903 L4_MABX_B.RX_time_fve = L4_MABX_B.SFunction1_o8_i;
18904
18905 /* Outputs for Enabled SubSystem: '<S620>/PX2_MapLaneEgoRight' incorporates:
18906 * EnablePort: '<S621>/Enable'
18907 */
18908 /* Constant: '<S438>/CAN_RX-Enable_PX2_MapLaneEgoLeft' */
18909 if (L4_MABX_P.CAN_RXEnable_PX2_MapLaneEgoLe_b) {
18910 /* S-Function (rti_commonblock): '<S621>/S-Function1' */
18911 /* This comment workarounds a code generation problem */
18912
18913 /* dSPACE RTICAN RX Message Block: "PX2_MapLaneEgoRight" Id:1541 */
18914 {
18915 UInt32 *CAN_Msg;
18916 static dsfloat time_old = 0.0;
18917
18918 /* Read status and timestamp info (previous message) */
18919 if (can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x605].timestamp !=
18920 time_old) {
18921 /* ... save timestamp info for the calculation of the RX status
18922 during the consecutive sample hit*/
18923 time_old = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x605].timestamp;
18924
18925 /* ... set the processed flag to one */
18926 L4_MABX_B.SFunction1_o7_l = 1.0;
18927 L4_MABX_B.SFunction1_o8_g = (real_T)
18928 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x605].timestamp;
18929 L4_MABX_B.SFunction1_o9_g = (real_T)
18930 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x605].deltatime;
18931 CAN_Msg = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x605].data;
18932
18933 /* Decode CAN message */
18934 {
18935 {
18936 rtican_Signal_t CAN_Sgn;
18937
18938 /* ...... "PX2_MapLaneNearPos" (0|16, standard signal, signed int, little endian) */
18939 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18940 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
18941 CAN_Sgn.SignedSgn &= 0x0000FFFF;
18942 if (CAN_Sgn.SignedSgn >> 15) {
18943 CAN_Sgn.SignedSgn |= 0xFFFF0000;
18944 }
18945
18946 L4_MABX_B.SFunction1_o1_li = 0.00390625 * ( ((real_T)
18947 CAN_Sgn.SignedSgn) );
18948
18949 /* ...... "PX2_MapLaneMidPos" (16|16, standard signal, signed int, little endian) */
18950 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
18951 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
18952 CAN_Sgn.SignedSgn &= 0x0000FFFF;
18953 if (CAN_Sgn.SignedSgn >> 15) {
18954 CAN_Sgn.SignedSgn |= 0xFFFF0000;
18955 }
18956
18957 L4_MABX_B.SFunction1_o2_an = 0.00390625 * ( ((real_T)
18958 CAN_Sgn.SignedSgn) );
18959
18960 /* ...... "PX2_MapLaneFarPos" (32|16, standard signal, signed int, little endian) */
18961 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
18962 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
18963 CAN_Sgn.SignedSgn &= 0x0000FFFF;
18964 if (CAN_Sgn.SignedSgn >> 15) {
18965 CAN_Sgn.SignedSgn |= 0xFFFF0000;
18966 }
18967
18968 L4_MABX_B.SFunction1_o3_a0 = 0.00390625 * ( ((real_T)
18969 CAN_Sgn.SignedSgn) );
18970
18971 /* ...... "PX2_EgoLaneNearPosValid" (48|2, standard signal, unsigned int, little endian) */
18972 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
18973 CAN_Sgn.UnsignedSgn &= 0x00000003;
18974 L4_MABX_B.SFunction1_o4_b1 = ((real_T) CAN_Sgn.UnsignedSgn);
18975
18976 /* ...... "PX2_EgoLaneMidPosValid" (50|2, standard signal, unsigned int, little endian) */
18977 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
18978 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
18979 CAN_Sgn.UnsignedSgn &= 0x00000003;
18980 L4_MABX_B.SFunction1_o5_p = ((real_T) CAN_Sgn.UnsignedSgn);
18981
18982 /* ...... "PX2_EgoLaneFarPosValid" (52|2, standard signal, unsigned int, little endian) */
18983 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
18984 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
18985 CAN_Sgn.UnsignedSgn &= 0x00000003;
18986 L4_MABX_B.SFunction1_o6_f = ((real_T) CAN_Sgn.UnsignedSgn);
18987 }
18988 }
18989 } else {
18990 /* set RX status to 0 because no new message has arrived */
18991 L4_MABX_B.SFunction1_o7_l = 0.0;
18992 }
18993 }
18994 }
18995
18996 /* End of Constant: '<S438>/CAN_RX-Enable_PX2_MapLaneEgoLeft' */
18997 /* End of Outputs for SubSystem: '<S620>/PX2_MapLaneEgoRight' */
18998
18999 /* DataTypeConversion: '<S620>/Data Type Conversion10' */
19000 L4_MABX_B.RX_delta_time_nm = L4_MABX_B.SFunction1_o9_g;
19001
19002 /* DataTypeConversion: '<S620>/Data Type Conversion8' */
19003 L4_MABX_B.RX_status_k = (L4_MABX_B.SFunction1_o7_l != 0.0);
19004
19005 /* DataTypeConversion: '<S620>/Data Type Conversion9' */
19006 L4_MABX_B.RX_time_lk = L4_MABX_B.SFunction1_o8_g;
19007
19008 /* Outputs for Enabled SubSystem: '<S622>/PX2_EgoLanePos' incorporates:
19009 * EnablePort: '<S623>/Enable'
19010 */
19011 /* Constant: '<S439>/Constant' */
19012 if (L4_MABX_P.Constant_Value_ky) {
19013 /* S-Function (rti_commonblock): '<S623>/S-Function1' */
19014 /* This comment workarounds a code generation problem */
19015
19016 /* dSPACE RTICAN RX Message Block: "PX2_EgoLanePos" Id:1540 */
19017 {
19018 UInt32 *CAN_Msg;
19019 static dsfloat time_old = 0.0;
19020
19021 /* Read status and timestamp info (previous message) */
19022 if (can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x604].timestamp !=
19023 time_old) {
19024 /* ... save timestamp info for the calculation of the RX status
19025 during the consecutive sample hit*/
19026 time_old = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x604].timestamp;
19027
19028 /* ... set the processed flag to one */
19029 L4_MABX_B.SFunction1_o7_k = 1.0;
19030 L4_MABX_B.SFunction1_o8_k = (real_T)
19031 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x604].timestamp;
19032 L4_MABX_B.SFunction1_o9_l = (real_T)
19033 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x604].deltatime;
19034 CAN_Msg = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x604].data;
19035
19036 /* Decode CAN message */
19037 {
19038 {
19039 rtican_Signal_t CAN_Sgn;
19040
19041 /* ...... "PX2_EgoLaneNearPosErr" (0|16, standard signal, signed int, little endian) */
19042 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
19043 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
19044 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19045 if (CAN_Sgn.SignedSgn >> 15) {
19046 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19047 }
19048
19049 L4_MABX_B.SFunction1_o1_kj = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
19050
19051 /* ...... "PX2_EgoLaneMidPosErr" (16|16, standard signal, signed int, little endian) */
19052 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
19053 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
19054 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19055 if (CAN_Sgn.SignedSgn >> 15) {
19056 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19057 }
19058
19059 L4_MABX_B.SFunction1_o2_gg = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
19060
19061 /* ...... "PX2_EgoLaneFarPosErr" (32|16, standard signal, signed int, little endian) */
19062 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
19063 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
19064 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19065 if (CAN_Sgn.SignedSgn >> 15) {
19066 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19067 }
19068
19069 L4_MABX_B.SFunction1_o3_dh = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
19070
19071 /* ...... "PX2_EgoLaneNearPosValid" (48|2, standard signal, unsigned int, little endian) */
19072 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19073 CAN_Sgn.UnsignedSgn &= 0x00000003;
19074 L4_MABX_B.SFunction1_o4_lw = ((real_T) CAN_Sgn.UnsignedSgn);
19075
19076 /* ...... "PX2_EgoLaneMidPosValid" (50|2, standard signal, unsigned int, little endian) */
19077 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19078 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
19079 CAN_Sgn.UnsignedSgn &= 0x00000003;
19080 L4_MABX_B.SFunction1_o5_i = ((real_T) CAN_Sgn.UnsignedSgn);
19081
19082 /* ...... "PX2_EgoLaneFarPosValid" (52|2, standard signal, unsigned int, little endian) */
19083 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19084 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
19085 CAN_Sgn.UnsignedSgn &= 0x00000003;
19086 L4_MABX_B.SFunction1_o6_g = ((real_T) CAN_Sgn.UnsignedSgn);
19087 }
19088 }
19089 } else {
19090 /* set RX status to 0 because no new message has arrived */
19091 L4_MABX_B.SFunction1_o7_k = 0.0;
19092 }
19093 }
19094 }
19095
19096 /* End of Constant: '<S439>/Constant' */
19097 /* End of Outputs for SubSystem: '<S622>/PX2_EgoLanePos' */
19098
19099 /* DataTypeConversion: '<S622>/Data Type Conversion10' */
19100 L4_MABX_B.RX_delta_time_nz = L4_MABX_B.SFunction1_o9_l;
19101
19102 /* DataTypeConversion: '<S622>/Data Type Conversion8' */
19103 L4_MABX_B.RX_status_f = (L4_MABX_B.SFunction1_o7_k != 0.0);
19104
19105 /* DataTypeConversion: '<S622>/Data Type Conversion9' */
19106 L4_MABX_B.RX_time_m = L4_MABX_B.SFunction1_o8_k;
19107
19108 /* DataTypeConversion: '<S624>/Data Type Conversion10' */
19109 L4_MABX_B.RX_delta_time_cr = L4_MABX_B.SFunction1_o7_ci;
19110
19111 /* DataTypeConversion: '<S624>/Data Type Conversion9' */
19112 L4_MABX_B.RX_time_j5 = L4_MABX_B.SFunction1_o6_nm;
19113
19114 /* DataTypeConversion: '<S626>/Data Type Conversion10' */
19115 L4_MABX_B.RX_delta_time_hm0 = L4_MABX_B.SFunction1_o28;
19116
19117 /* DataTypeConversion: '<S626>/Data Type Conversion8' */
19118 L4_MABX_B.RX_status_fz = (L4_MABX_B.SFunction1_o26 != 0.0);
19119
19120 /* DataTypeConversion: '<S626>/Data Type Conversion9' */
19121 L4_MABX_B.RX_time_p = L4_MABX_B.SFunction1_o27;
19122
19123 /* DataTypeConversion: '<S628>/Data Type Conversion10' */
19124 L4_MABX_B.RX_delta_time_a4 = L4_MABX_B.SFunction1_o10;
19125
19126 /* DataTypeConversion: '<S628>/Data Type Conversion8' */
19127 L4_MABX_B.RX_status_fu = (L4_MABX_B.SFunction1_o8_p != 0.0);
19128
19129 /* DataTypeConversion: '<S628>/Data Type Conversion9' */
19130 L4_MABX_B.RX_time_py = L4_MABX_B.SFunction1_o9_p;
19131
19132 /* DataTypeConversion: '<S630>/Data Type Conversion10' */
19133 L4_MABX_B.RX_delta_time_bk2 = L4_MABX_B.SFunction1_o9;
19134
19135 /* DataTypeConversion: '<S630>/Data Type Conversion8' */
19136 L4_MABX_B.RX_status_pt = (L4_MABX_B.SFunction1_o7_d != 0.0);
19137
19138 /* DataTypeConversion: '<S630>/Data Type Conversion9' */
19139 L4_MABX_B.RX_time_nbf = L4_MABX_B.SFunction1_o8_n;
19140
19141 /* Outputs for Enabled SubSystem: '<S632>/VEP1' incorporates:
19142 * EnablePort: '<S633>/Enable'
19143 */
19144 /* Constant: '<S444>/Constant' */
19145 if (L4_MABX_P.Constant_Value_hu > 0.0) {
19146 /* S-Function (rti_commonblock): '<S633>/S-Function1' */
19147 /* This comment workarounds a code generation problem */
19148
19149 /* dSPACE RTICAN RX Message Block: "VEP1" Id:419362563 */
19150 {
19151 UInt32 *CAN_Msg;
19152 static dsfloat time_old = 0.0;
19153
19154 /* Read status and timestamp info (previous message) */
19155 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF703].timestamp !=
19156 time_old) {
19157 /* ... save timestamp info for the calculation of the RX status
19158 during the consecutive sample hit*/
19159 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF703].
19160 timestamp;
19161
19162 /* ... set the processed flag to one */
19163 L4_MABX_B.SFunction1_o6 = 1.0;
19164 L4_MABX_B.SFunction1_o7 = (real_T)
19165 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF703].timestamp;
19166 L4_MABX_B.SFunction1_o8 = (real_T)
19167 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF703].deltatime;
19168 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF703].data;
19169
19170 /* Decode CAN message */
19171 {
19172 {
19173 rtican_Signal_t CAN_Sgn;
19174
19175 /* ...... "NetBatteryCurrent" (0|8, standard signal, unsigned int, little endian) */
19176 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
19177 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19178 L4_MABX_B.SFunction1_o1_ngf = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
19179 );
19180
19181 /* ...... "AltCurrent" (8|8, standard signal, unsigned int, little endian) */
19182 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
19183 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19184 L4_MABX_B.SFunction1_o2_ko = ((real_T) CAN_Sgn.UnsignedSgn);
19185
19186 /* ...... "ChargingSystemPotential" (16|16, standard signal, unsigned int, little endian) */
19187 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
19188 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
19189 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
19190 L4_MABX_B.SFunction1_o3_ke = 0.05 * ( ((real_T) CAN_Sgn.UnsignedSgn)
19191 );
19192
19193 /* ...... "BatteryPotential_PowerInput1" (32|16, standard signal, unsigned int, little endian) */
19194 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
19195 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
19196 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
19197 L4_MABX_B.SFunction1_o4_eg = 0.05 * ( ((real_T) CAN_Sgn.UnsignedSgn)
19198 );
19199
19200 /* ...... "KeyswitchBatteryPotential" (48|16, standard signal, unsigned int, little endian) */
19201 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19202 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[7];
19203 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
19204 L4_MABX_B.SFunction1_o5 = 0.05 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
19205 }
19206 }
19207 } else {
19208 /* set RX status to 0 because no new message has arrived */
19209 L4_MABX_B.SFunction1_o6 = 0.0;
19210 }
19211 }
19212 }
19213
19214 /* End of Constant: '<S444>/Constant' */
19215 /* End of Outputs for SubSystem: '<S632>/VEP1' */
19216
19217 /* DataTypeConversion: '<S632>/Data Type Conversion1' */
19218 L4_MABX_B.PitchAngleExRange_a = L4_MABX_B.SFunction1_o1_ngf;
19219
19220 /* DataTypeConversion: '<S632>/Data Type Conversion10' */
19221 L4_MABX_B.RX_delta_time_ag = L4_MABX_B.SFunction1_o8;
19222
19223 /* DataTypeConversion: '<S632>/Data Type Conversion2' */
19224 L4_MABX_B.AltCurrent = L4_MABX_B.SFunction1_o2_ko;
19225
19226 /* DataTypeConversion: '<S632>/Data Type Conversion3' */
19227 L4_MABX_B.ChargingSystemPotential = L4_MABX_B.SFunction1_o3_ke;
19228
19229 /* DataTypeConversion: '<S632>/Data Type Conversion4' */
19230 L4_MABX_B.BatteryPotential_PowerInput1 = L4_MABX_B.SFunction1_o4_eg;
19231
19232 /* DataTypeConversion: '<S632>/Data Type Conversion5' */
19233 L4_MABX_B.KeyswitchBatteryPotential = L4_MABX_B.SFunction1_o5;
19234
19235 /* DataTypeConversion: '<S632>/Data Type Conversion8' */
19236 L4_MABX_B.RX_status_ig = (L4_MABX_B.SFunction1_o6 != 0.0);
19237
19238 /* DataTypeConversion: '<S632>/Data Type Conversion9' */
19239 L4_MABX_B.RX_time_ip = L4_MABX_B.SFunction1_o7;
19240
19241 /* RelationalOperator: '<S635>/Relational Operator2' incorporates:
19242 * Constant: '<S635>/TRUCK_166_VIN_CPV'
19243 */
19244 L4_MABX_B.RelationalOperator2[0] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[0] !=
19245 L4_MABX_B.DataTypeConversion_hb);
19246 L4_MABX_B.RelationalOperator2[1] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[1] !=
19247 L4_MABX_B.DataTypeConversion1_el);
19248 L4_MABX_B.RelationalOperator2[2] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[2] !=
19249 L4_MABX_B.DataTypeConversion2_cy);
19250 L4_MABX_B.RelationalOperator2[3] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[3] !=
19251 L4_MABX_B.DataTypeConversion3_ci);
19252 L4_MABX_B.RelationalOperator2[4] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[4] !=
19253 L4_MABX_B.DataTypeConversion4_jp);
19254 L4_MABX_B.RelationalOperator2[5] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[5] !=
19255 L4_MABX_B.DataTypeConversion5_e);
19256 L4_MABX_B.RelationalOperator2[6] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[6] !=
19257 L4_MABX_B.DataTypeConversion6_m);
19258 L4_MABX_B.RelationalOperator2[7] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[7] !=
19259 L4_MABX_B.DataTypeConversion7_c);
19260 L4_MABX_B.RelationalOperator2[8] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[8] !=
19261 L4_MABX_B.DataTypeConversion8_e);
19262 L4_MABX_B.RelationalOperator2[9] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[9] !=
19263 L4_MABX_B.DataTypeConversion9_k);
19264 L4_MABX_B.RelationalOperator2[10] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[10] !=
19265 L4_MABX_B.DataTypeConversion10_n);
19266 L4_MABX_B.RelationalOperator2[11] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[11] !=
19267 L4_MABX_B.DataTypeConversion11_i);
19268 L4_MABX_B.RelationalOperator2[12] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[12] !=
19269 L4_MABX_B.DataTypeConversion12);
19270 L4_MABX_B.RelationalOperator2[13] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[13] !=
19271 L4_MABX_B.DataTypeConversion14_n);
19272 L4_MABX_B.RelationalOperator2[14] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[14] !=
19273 L4_MABX_B.DataTypeConversion13_k);
19274 L4_MABX_B.RelationalOperator2[15] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[15] !=
19275 L4_MABX_B.DataTypeConversion15_c);
19276 L4_MABX_B.RelationalOperator2[16] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[16] !=
19277 L4_MABX_B.DataTypeConversion16_d);
19278
19279 /* Sum: '<S635>/Add1' */
19280 tmp = 0U;
19281 for (i = 0; i < 17; i++) {
19282 tmp += L4_MABX_B.RelationalOperator2[i];
19283 }
19284
19285 L4_MABX_B.Add1_g1 = (uint8_T)tmp;
19286
19287 /* End of Sum: '<S635>/Add1' */
19288
19289 /* RelationalOperator: '<S640>/Compare' incorporates:
19290 * Constant: '<S640>/Constant'
19291 */
19292 L4_MABX_B.Compare_b3 = (L4_MABX_B.Add1_g1 == L4_MABX_P.Constant_Value_fq);
19293
19294 /* UnitDelay: '<S635>/Unit_Delay2' */
19295 L4_MABX_B.Unit_Delay2_mg = L4_MABX_DW.Unit_Delay2_DSTATE_h;
19296
19297 /* Logic: '<S635>/Logical Operator1' */
19298 L4_MABX_B.LogicalOperator1_jp = (L4_MABX_B.Unit_Delay2_mg &&
19299 L4_MABX_B.Compare_b3);
19300
19301 /* Logic: '<S641>/Logical Operator2' */
19302 L4_MABX_B.LogicalOperator2_f = !L4_MABX_B.LogicalOperator1_j;
19303
19304 /* UnitDelay: '<S635>/Unit_Delay1' */
19305 L4_MABX_B.Unit_Delay1_m = L4_MABX_DW.Unit_Delay1_DSTATE_i;
19306
19307 /* Logic: '<S642>/Logical Operator3' */
19308 L4_MABX_B.LogicalOperator3_k = !L4_MABX_B.Unit_Delay1_m;
19309
19310 /* UnitDelay: '<S642>/Unit_Delay' */
19311 L4_MABX_B.Unit_Delay_fk = L4_MABX_DW.Unit_Delay_DSTATE_d1;
19312
19313 /* Logic: '<S642>/Logical Operator' */
19314 L4_MABX_B.LogicalOperator_b = (L4_MABX_B.LogicalOperator3_k &&
19315 L4_MABX_B.Unit_Delay_fk);
19316
19317 /* Logic: '<S642>/Logical Operator1' */
19318 L4_MABX_B.LogicalOperator1_h = (L4_MABX_B.LogicalOperator1_jp ||
19319 L4_MABX_B.LogicalOperator_b);
19320
19321 /* Logic: '<S642>/Logical Operator2' */
19322 L4_MABX_B.LogicalOperator2_j = !L4_MABX_B.LogicalOperator1_h;
19323
19324 /* Constant: '<S401>/Constant2' */
19325 L4_MABX_B.PX2_HeartBeat = L4_MABX_P.Constant2_Value_d;
19326
19327 /* RelationalOperator: '<S679>/Operator' incorporates:
19328 * Constant: '<S455>/Constant1'
19329 */
19330 L4_MABX_B.Operator_ezo = (L4_MABX_B.DataTypeConversion_ho[0] ==
19331 L4_MABX_P.Constant1_Value_ct);
19332
19333 /* Outputs for Enabled SubSystem: '<S455>/Decode_TPCM_CTS' incorporates:
19334 * EnablePort: '<S674>/Enable'
19335 */
19336 if (L4_MABX_B.Operator_ezo) {
19337 /* SignalConversion: '<S691>/Signal Conversion' */
19338 L4_MABX_B.SPN2556_ControlByte_bm = L4_MABX_B.DataTypeConversion_ho[0];
19339
19340 /* SignalConversion: '<S692>/Signal Conversion' */
19341 L4_MABX_B.SPN2561_NumberOfPacketsThatCanB = L4_MABX_B.DataTypeConversion_ho
19342 [1];
19343
19344 /* SignalConversion: '<S693>/Signal Conversion' */
19345 L4_MABX_B.SPN2562_NextPacketNumberToBeSen = L4_MABX_B.DataTypeConversion_ho
19346 [2];
19347
19348 /* DataTypeConversion: '<S694>/Data Type Conversion' */
19349 L4_MABX_B.DataTypeConversion_px = L4_MABX_B.DataTypeConversion_ho[5];
19350
19351 /* DataTypeConversion: '<S694>/Data Type Conversion1' */
19352 L4_MABX_B.DataTypeConversion1_dy = L4_MABX_B.DataTypeConversion_ho[6];
19353
19354 /* DataTypeConversion: '<S694>/Data Type Conversion2' */
19355 L4_MABX_B.DataTypeConversion2_on = L4_MABX_B.DataTypeConversion_ho[7];
19356
19357 /* ArithShift: '<S694>/Shift Arithmetic1' */
19358 L4_MABX_B.ShiftArithmetic1_l = L4_MABX_B.DataTypeConversion1_dy << 8;
19359
19360 /* ArithShift: '<S694>/Shift Arithmetic2' */
19361 L4_MABX_B.ShiftArithmetic2_f = L4_MABX_B.DataTypeConversion2_on << 16;
19362
19363 /* S-Function (sfix_bitop): '<S695>/Operator' */
19364 L4_MABX_B.Operator_aq = L4_MABX_B.DataTypeConversion_px |
19365 L4_MABX_B.ShiftArithmetic1_l | L4_MABX_B.ShiftArithmetic2_f;
19366
19367 /* DataTypeConversion: '<S695>/DataType' */
19368 L4_MABX_B.DataType_mo = L4_MABX_B.Operator_aq;
19369 }
19370
19371 /* End of Outputs for SubSystem: '<S455>/Decode_TPCM_CTS' */
19372
19373 /* RelationalOperator: '<S682>/Operator' incorporates:
19374 * Constant: '<S455>/Constant4'
19375 */
19376 L4_MABX_B.Operator_kkd = (L4_MABX_B.DataTypeConversion_ho[0] ==
19377 L4_MABX_P.Constant4_Value_ms);
19378
19379 /* Outputs for Enabled SubSystem: '<S455>/Decode_TPCM_ConnectionAbort' incorporates:
19380 * EnablePort: '<S675>/Enable'
19381 */
19382 if (L4_MABX_B.Operator_kkd) {
19383 /* SignalConversion: '<S697>/Signal Conversion' */
19384 L4_MABX_B.SPN2556_ControlByte_b = L4_MABX_B.DataTypeConversion_ho[0];
19385
19386 /* SignalConversion: '<S698>/Signal Conversion' */
19387 L4_MABX_B.SPN2570_ConnectionAbortReason = L4_MABX_B.DataTypeConversion_ho[1];
19388
19389 /* DataTypeConversion: '<S699>/Data Type Conversion' */
19390 L4_MABX_B.DataTypeConversion_fc = L4_MABX_B.DataTypeConversion_ho[5];
19391
19392 /* DataTypeConversion: '<S699>/Data Type Conversion1' */
19393 L4_MABX_B.DataTypeConversion1_a0 = L4_MABX_B.DataTypeConversion_ho[6];
19394
19395 /* DataTypeConversion: '<S699>/Data Type Conversion2' */
19396 L4_MABX_B.DataTypeConversion2_kp = L4_MABX_B.DataTypeConversion_ho[7];
19397
19398 /* ArithShift: '<S699>/Shift Arithmetic1' */
19399 L4_MABX_B.ShiftArithmetic1_f = L4_MABX_B.DataTypeConversion1_a0 << 8;
19400
19401 /* ArithShift: '<S699>/Shift Arithmetic2' */
19402 L4_MABX_B.ShiftArithmetic2_ky = L4_MABX_B.DataTypeConversion2_kp << 16;
19403
19404 /* S-Function (sfix_bitop): '<S700>/Operator' */
19405 L4_MABX_B.Operator_iz = L4_MABX_B.DataTypeConversion_fc |
19406 L4_MABX_B.ShiftArithmetic1_f | L4_MABX_B.ShiftArithmetic2_ky;
19407
19408 /* DataTypeConversion: '<S700>/DataType' */
19409 L4_MABX_B.DataType_dm = L4_MABX_B.Operator_iz;
19410 }
19411
19412 /* End of Outputs for SubSystem: '<S455>/Decode_TPCM_ConnectionAbort' */
19413
19414 /* RelationalOperator: '<S680>/Operator' incorporates:
19415 * Constant: '<S455>/Constant2'
19416 */
19417 L4_MABX_B.Operator_oc = (L4_MABX_B.DataTypeConversion_ho[0] ==
19418 L4_MABX_P.Constant2_Value_l);
19419
19420 /* Outputs for Enabled SubSystem: '<S455>/Decode_TPCM_EndOfMessageAck' incorporates:
19421 * EnablePort: '<S676>/Enable'
19422 */
19423 if (L4_MABX_B.Operator_oc) {
19424 /* SignalConversion: '<S702>/Signal Conversion' */
19425 L4_MABX_B.SPN2556_ControlByte_i = L4_MABX_B.DataTypeConversion_ho[0];
19426
19427 /* DataTypeConversion: '<S703>/Data Type Conversion' */
19428 L4_MABX_B.DataTypeConversion_d = L4_MABX_B.DataTypeConversion_ho[1];
19429
19430 /* DataTypeConversion: '<S703>/Data Type Conversion1' */
19431 L4_MABX_B.DataTypeConversion1_kk = L4_MABX_B.DataTypeConversion_ho[2];
19432
19433 /* ArithShift: '<S703>/Shift Arithmetic2' */
19434 L4_MABX_B.ShiftArithmetic2_j = (uint16_T)(L4_MABX_B.DataTypeConversion1_kk <<
19435 8);
19436
19437 /* S-Function (sfix_bitop): '<S706>/Operator' */
19438 L4_MABX_B.Operator_ez = (uint16_T)(L4_MABX_B.DataTypeConversion_d |
19439 L4_MABX_B.ShiftArithmetic2_j);
19440
19441 /* DataTypeConversion: '<S706>/DataType' */
19442 L4_MABX_B.DataType_iq = L4_MABX_B.Operator_ez;
19443
19444 /* SignalConversion: '<S704>/Signal Conversion' */
19445 L4_MABX_B.SPN2565_TotalNumberOfPackets = L4_MABX_B.DataTypeConversion_ho[3];
19446
19447 /* DataTypeConversion: '<S705>/Data Type Conversion' */
19448 L4_MABX_B.DataTypeConversion_gi = L4_MABX_B.DataTypeConversion_ho[5];
19449
19450 /* DataTypeConversion: '<S705>/Data Type Conversion1' */
19451 L4_MABX_B.DataTypeConversion1_ix = L4_MABX_B.DataTypeConversion_ho[6];
19452
19453 /* DataTypeConversion: '<S705>/Data Type Conversion2' */
19454 L4_MABX_B.DataTypeConversion2_lx = L4_MABX_B.DataTypeConversion_ho[7];
19455
19456 /* ArithShift: '<S705>/Shift Arithmetic1' */
19457 L4_MABX_B.ShiftArithmetic1_p = L4_MABX_B.DataTypeConversion1_ix << 8;
19458
19459 /* ArithShift: '<S705>/Shift Arithmetic2' */
19460 L4_MABX_B.ShiftArithmetic2_k = L4_MABX_B.DataTypeConversion2_lx << 16;
19461
19462 /* S-Function (sfix_bitop): '<S707>/Operator' */
19463 L4_MABX_B.Operator_by = L4_MABX_B.DataTypeConversion_gi |
19464 L4_MABX_B.ShiftArithmetic1_p | L4_MABX_B.ShiftArithmetic2_k;
19465
19466 /* DataTypeConversion: '<S707>/DataType' */
19467 L4_MABX_B.DataType_m = L4_MABX_B.Operator_by;
19468 }
19469
19470 /* End of Outputs for SubSystem: '<S455>/Decode_TPCM_EndOfMessageAck' */
19471
19472 /* RelationalOperator: '<S678>/Operator' incorporates:
19473 * Constant: '<S455>/Constant'
19474 */
19475 L4_MABX_B.Operator_kh = (L4_MABX_B.DataTypeConversion_ho[0] ==
19476 L4_MABX_P.Constant_Value_pg);
19477
19478 /* Outputs for Enabled SubSystem: '<S455>/Decode_TPCM_RTS' incorporates:
19479 * EnablePort: '<S677>/Enable'
19480 */
19481 if (L4_MABX_B.Operator_kh) {
19482 /* SignalConversion: '<S709>/Signal Conversion' */
19483 L4_MABX_B.SPN2556_ControlByte = L4_MABX_B.DataTypeConversion_ho[0];
19484
19485 /* DataTypeConversion: '<S710>/Data Type Conversion' */
19486 L4_MABX_B.DataTypeConversion_b1 = L4_MABX_B.DataTypeConversion_ho[1];
19487
19488 /* DataTypeConversion: '<S710>/Data Type Conversion1' */
19489 L4_MABX_B.DataTypeConversion1_oi = L4_MABX_B.DataTypeConversion_ho[2];
19490
19491 /* ArithShift: '<S710>/Shift Arithmetic2' */
19492 L4_MABX_B.ShiftArithmetic2_fa = (uint16_T)(L4_MABX_B.DataTypeConversion1_oi <<
19493 8);
19494
19495 /* S-Function (sfix_bitop): '<S714>/Operator' */
19496 L4_MABX_B.Operator_e0 = (uint16_T)(L4_MABX_B.DataTypeConversion_b1 |
19497 L4_MABX_B.ShiftArithmetic2_fa);
19498
19499 /* DataTypeConversion: '<S714>/DataType' */
19500 L4_MABX_B.DataType_nx = L4_MABX_B.Operator_e0;
19501
19502 /* SignalConversion: '<S711>/Signal Conversion' */
19503 L4_MABX_B.SPN2558_TotalNumberOfPackets = L4_MABX_B.DataTypeConversion_ho[3];
19504
19505 /* SignalConversion: '<S712>/Signal Conversion' */
19506 L4_MABX_B.SPN2559_MaximumNumberOfPackets = L4_MABX_B.DataTypeConversion_ho[4];
19507
19508 /* DataTypeConversion: '<S713>/Data Type Conversion' */
19509 L4_MABX_B.DataTypeConversion_cv = L4_MABX_B.DataTypeConversion_ho[5];
19510
19511 /* DataTypeConversion: '<S713>/Data Type Conversion1' */
19512 L4_MABX_B.DataTypeConversion1_dx = L4_MABX_B.DataTypeConversion_ho[6];
19513
19514 /* DataTypeConversion: '<S713>/Data Type Conversion2' */
19515 L4_MABX_B.DataTypeConversion2_b = L4_MABX_B.DataTypeConversion_ho[7];
19516
19517 /* ArithShift: '<S713>/Shift Arithmetic1' */
19518 L4_MABX_B.ShiftArithmetic1 = L4_MABX_B.DataTypeConversion1_dx << 8;
19519
19520 /* ArithShift: '<S713>/Shift Arithmetic2' */
19521 L4_MABX_B.ShiftArithmetic2 = L4_MABX_B.DataTypeConversion2_b << 16;
19522
19523 /* S-Function (sfix_bitop): '<S715>/Operator' */
19524 L4_MABX_B.Operator_hi = L4_MABX_B.DataTypeConversion_cv |
19525 L4_MABX_B.ShiftArithmetic1 | L4_MABX_B.ShiftArithmetic2;
19526
19527 /* DataTypeConversion: '<S715>/DataType' */
19528 L4_MABX_B.DataType_bg = L4_MABX_B.Operator_hi;
19529 }
19530
19531 /* End of Outputs for SubSystem: '<S455>/Decode_TPCM_RTS' */
19532
19533 /* RelationalOperator: '<S575>/Operator' incorporates:
19534 * Constant: '<S430>/Constant'
19535 * Constant: '<S571>/Constant'
19536 */
19537 L4_MABX_B.Operator_gc = (PROPB_REAX_CHANNEL_APV == L4_MABX_P.Constant_Value_kv);
19538
19539 /* Outputs for Enabled SubSystem: '<S568>/CAN_TYPE1_RX_M1_C1' incorporates:
19540 * EnablePort: '<S572>/Enable'
19541 */
19542 if (L4_MABX_B.Operator_gc) {
19543 /* S-Function (rti_commonblock): '<S572>/S-Function1' */
19544 /* This comment workarounds a code generation problem */
19545
19546 /* dSPACE RTICAN RX Message Block: "PropB_REAX_3_13" Id:419426579 */
19547 {
19548 UInt32 *CAN_Msg;
19549 static dsfloat time_old = 0.0;
19550
19551 /* Read status and timestamp info (previous message) */
19552 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF113].timestamp !=
19553 time_old) {
19554 /* ... save timestamp info for the calculation of the RX status
19555 during the consecutive sample hit*/
19556 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF113].
19557 timestamp;
19558
19559 /* ... set the processed flag to one */
19560 L4_MABX_B.SFunction1_o9_cl = 1.0;
19561 L4_MABX_B.SFunction1_o10_eg = (real_T)
19562 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF113].timestamp;
19563 L4_MABX_B.SFunction1_o11_g = (real_T)
19564 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF113].deltatime;
19565 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF113].data;
19566
19567 /* Decode CAN message */
19568 {
19569 {
19570 rtican_Signal_t CAN_Sgn;
19571
19572 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
19573 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
19574 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19575 L4_MABX_B.SFunction1_o1_j5 = ((real_T) CAN_Sgn.UnsignedSgn);
19576
19577 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
19578 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
19579 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19580 L4_MABX_B.SFunction1_o2_mn = ((real_T) CAN_Sgn.UnsignedSgn);
19581
19582 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
19583 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
19584 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19585 L4_MABX_B.SFunction1_o3_of = ((real_T) CAN_Sgn.UnsignedSgn);
19586
19587 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
19588 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
19589 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19590 L4_MABX_B.SFunction1_o4_f = ((real_T) CAN_Sgn.UnsignedSgn);
19591
19592 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
19593 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
19594 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19595 L4_MABX_B.SFunction1_o5_f3 = ((real_T) CAN_Sgn.UnsignedSgn);
19596
19597 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
19598 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
19599 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19600 L4_MABX_B.SFunction1_o6_eaf = ((real_T) CAN_Sgn.UnsignedSgn);
19601
19602 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
19603 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19604 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19605 L4_MABX_B.SFunction1_o7_n = ((real_T) CAN_Sgn.UnsignedSgn);
19606
19607 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
19608 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
19609 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19610 L4_MABX_B.SFunction1_o8_a = ((real_T) CAN_Sgn.UnsignedSgn);
19611 }
19612 }
19613 } else {
19614 /* set RX status to 0 because no new message has arrived */
19615 L4_MABX_B.SFunction1_o9_cl = 0.0;
19616 }
19617 }
19618 }
19619
19620 /* End of Outputs for SubSystem: '<S568>/CAN_TYPE1_RX_M1_C1' */
19621
19622 /* RelationalOperator: '<S576>/Operator' incorporates:
19623 * Constant: '<S430>/Constant'
19624 * Constant: '<S571>/Constant1'
19625 */
19626 L4_MABX_B.Operator_le = (PROPB_REAX_CHANNEL_APV ==
19627 L4_MABX_P.Constant1_Value_p0);
19628
19629 /* Outputs for Enabled SubSystem: '<S569>/CAN_TYPE1_RX_M1_C2' incorporates:
19630 * EnablePort: '<S573>/Enable'
19631 */
19632 if (L4_MABX_B.Operator_le) {
19633 /* S-Function (rti_commonblock): '<S573>/S-Function1' */
19634 /* This comment workarounds a code generation problem */
19635
19636 /* dSPACE RTICAN RX Message Block: "PropB_REAX_3_13" Id:419426579 */
19637 {
19638 UInt32 *CAN_Msg;
19639 static dsfloat time_old = 0.0;
19640
19641 /* Read status and timestamp info (previous message) */
19642 if (can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF113].timestamp !=
19643 time_old) {
19644 /* ... save timestamp info for the calculation of the RX status
19645 during the consecutive sample hit*/
19646 time_old = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF113].
19647 timestamp;
19648
19649 /* ... set the processed flag to one */
19650 L4_MABX_B.SFunction1_o9_h = 1.0;
19651 L4_MABX_B.SFunction1_o10_e = (real_T)
19652 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF113].timestamp;
19653 L4_MABX_B.SFunction1_o11_e = (real_T)
19654 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF113].deltatime;
19655 CAN_Msg = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF113].data;
19656
19657 /* Decode CAN message */
19658 {
19659 {
19660 rtican_Signal_t CAN_Sgn;
19661
19662 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
19663 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
19664 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19665 L4_MABX_B.SFunction1_o1_pq = ((real_T) CAN_Sgn.UnsignedSgn);
19666
19667 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
19668 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
19669 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19670 L4_MABX_B.SFunction1_o2_hd = ((real_T) CAN_Sgn.UnsignedSgn);
19671
19672 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
19673 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
19674 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19675 L4_MABX_B.SFunction1_o3_ir = ((real_T) CAN_Sgn.UnsignedSgn);
19676
19677 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
19678 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
19679 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19680 L4_MABX_B.SFunction1_o4_a2 = ((real_T) CAN_Sgn.UnsignedSgn);
19681
19682 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
19683 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
19684 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19685 L4_MABX_B.SFunction1_o5_n = ((real_T) CAN_Sgn.UnsignedSgn);
19686
19687 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
19688 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
19689 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19690 L4_MABX_B.SFunction1_o6_a2 = ((real_T) CAN_Sgn.UnsignedSgn);
19691
19692 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
19693 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19694 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19695 L4_MABX_B.SFunction1_o7_e3 = ((real_T) CAN_Sgn.UnsignedSgn);
19696
19697 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
19698 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
19699 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19700 L4_MABX_B.SFunction1_o8_kz = ((real_T) CAN_Sgn.UnsignedSgn);
19701 }
19702 }
19703 } else {
19704 /* set RX status to 0 because no new message has arrived */
19705 L4_MABX_B.SFunction1_o9_h = 0.0;
19706 }
19707 }
19708 }
19709
19710 /* End of Outputs for SubSystem: '<S569>/CAN_TYPE1_RX_M1_C2' */
19711
19712 /* DataTypeConversion: '<S569>/Data Type Conversion' */
19713 PositionFinalLimited = L4_MABX_B.SFunction1_o1_pq;
19714 if (PositionFinalLimited < 256.0) {
19715 if (PositionFinalLimited >= 0.0) {
19716 starting_index = (uint8_T)PositionFinalLimited;
19717 } else {
19718 starting_index = 0U;
19719 }
19720 } else {
19721 starting_index = MAX_uint8_T;
19722 }
19723
19724 L4_MABX_B.DataTypeConversion_e = starting_index;
19725
19726 /* End of DataTypeConversion: '<S569>/Data Type Conversion' */
19727
19728 /* DataTypeConversion: '<S569>/Data Type Conversion1' */
19729 PositionFinalLimited = L4_MABX_B.SFunction1_o2_hd;
19730 if (PositionFinalLimited < 256.0) {
19731 if (PositionFinalLimited >= 0.0) {
19732 starting_index = (uint8_T)PositionFinalLimited;
19733 } else {
19734 starting_index = 0U;
19735 }
19736 } else {
19737 starting_index = MAX_uint8_T;
19738 }
19739
19740 L4_MABX_B.DataTypeConversion1_du = starting_index;
19741
19742 /* End of DataTypeConversion: '<S569>/Data Type Conversion1' */
19743
19744 /* DataTypeConversion: '<S569>/Data Type Conversion2' */
19745 PositionFinalLimited = L4_MABX_B.SFunction1_o3_ir;
19746 if (PositionFinalLimited < 256.0) {
19747 if (PositionFinalLimited >= 0.0) {
19748 starting_index = (uint8_T)PositionFinalLimited;
19749 } else {
19750 starting_index = 0U;
19751 }
19752 } else {
19753 starting_index = MAX_uint8_T;
19754 }
19755
19756 L4_MABX_B.DataTypeConversion2_gg = starting_index;
19757
19758 /* End of DataTypeConversion: '<S569>/Data Type Conversion2' */
19759
19760 /* DataTypeConversion: '<S569>/Data Type Conversion3' */
19761 PositionFinalLimited = L4_MABX_B.SFunction1_o4_a2;
19762 if (PositionFinalLimited < 256.0) {
19763 if (PositionFinalLimited >= 0.0) {
19764 starting_index = (uint8_T)PositionFinalLimited;
19765 } else {
19766 starting_index = 0U;
19767 }
19768 } else {
19769 starting_index = MAX_uint8_T;
19770 }
19771
19772 L4_MABX_B.DataTypeConversion3_ov = starting_index;
19773
19774 /* End of DataTypeConversion: '<S569>/Data Type Conversion3' */
19775
19776 /* DataTypeConversion: '<S569>/Data Type Conversion4' */
19777 PositionFinalLimited = L4_MABX_B.SFunction1_o5_n;
19778 if (PositionFinalLimited < 256.0) {
19779 if (PositionFinalLimited >= 0.0) {
19780 starting_index = (uint8_T)PositionFinalLimited;
19781 } else {
19782 starting_index = 0U;
19783 }
19784 } else {
19785 starting_index = MAX_uint8_T;
19786 }
19787
19788 L4_MABX_B.DataTypeConversion4_op = starting_index;
19789
19790 /* End of DataTypeConversion: '<S569>/Data Type Conversion4' */
19791
19792 /* DataTypeConversion: '<S569>/Data Type Conversion5' */
19793 PositionFinalLimited = L4_MABX_B.SFunction1_o6_a2;
19794 if (PositionFinalLimited < 256.0) {
19795 if (PositionFinalLimited >= 0.0) {
19796 starting_index = (uint8_T)PositionFinalLimited;
19797 } else {
19798 starting_index = 0U;
19799 }
19800 } else {
19801 starting_index = MAX_uint8_T;
19802 }
19803
19804 L4_MABX_B.DataTypeConversion5_m = starting_index;
19805
19806 /* End of DataTypeConversion: '<S569>/Data Type Conversion5' */
19807
19808 /* DataTypeConversion: '<S569>/Data Type Conversion6' */
19809 PositionFinalLimited = L4_MABX_B.SFunction1_o7_e3;
19810 if (PositionFinalLimited < 256.0) {
19811 if (PositionFinalLimited >= 0.0) {
19812 starting_index = (uint8_T)PositionFinalLimited;
19813 } else {
19814 starting_index = 0U;
19815 }
19816 } else {
19817 starting_index = MAX_uint8_T;
19818 }
19819
19820 L4_MABX_B.DataTypeConversion6_nx = starting_index;
19821
19822 /* End of DataTypeConversion: '<S569>/Data Type Conversion6' */
19823
19824 /* DataTypeConversion: '<S569>/Data Type Conversion7' */
19825 PositionFinalLimited = L4_MABX_B.SFunction1_o8_kz;
19826 if (PositionFinalLimited < 256.0) {
19827 if (PositionFinalLimited >= 0.0) {
19828 starting_index = (uint8_T)PositionFinalLimited;
19829 } else {
19830 starting_index = 0U;
19831 }
19832 } else {
19833 starting_index = MAX_uint8_T;
19834 }
19835
19836 L4_MABX_B.DataTypeConversion7_l = starting_index;
19837
19838 /* End of DataTypeConversion: '<S569>/Data Type Conversion7' */
19839
19840 /* RelationalOperator: '<S580>/Operator' incorporates:
19841 * Constant: '<S430>/Constant'
19842 * Constant: '<S571>/Constant5'
19843 */
19844 L4_MABX_B.Operator_c5l = (PROPB_REAX_CHANNEL_APV ==
19845 L4_MABX_P.Constant5_Value_h);
19846
19847 /* Outputs for Enabled SubSystem: '<S570>/CAN_TYPE1_RX_M3_C2' incorporates:
19848 * EnablePort: '<S574>/Enable'
19849 */
19850 if (L4_MABX_B.Operator_c5l) {
19851 /* S-Function (rti_commonblock): '<S574>/S-Function1' */
19852 /* This comment workarounds a code generation problem */
19853
19854 /* dSPACE RTICAN RX Message Block: "PropB_REAX_3_13" Id:419426579 */
19855 {
19856 UInt32 *CAN_Msg;
19857 static dsfloat time_old = 0.0;
19858
19859 /* Read status and timestamp info (previous message) */
19860 if (can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x18FFF113].timestamp !=
19861 time_old) {
19862 /* ... save timestamp info for the calculation of the RX status
19863 during the consecutive sample hit*/
19864 time_old = can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x18FFF113].
19865 timestamp;
19866
19867 /* ... set the processed flag to one */
19868 L4_MABX_B.SFunction1_o9_f = 1.0;
19869 L4_MABX_B.SFunction1_o10_a = (real_T)
19870 can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x18FFF113].timestamp;
19871 L4_MABX_B.SFunction1_o11_l = (real_T)
19872 can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x18FFF113].deltatime;
19873 CAN_Msg = can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x18FFF113].data;
19874
19875 /* Decode CAN message */
19876 {
19877 {
19878 rtican_Signal_t CAN_Sgn;
19879
19880 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
19881 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
19882 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19883 L4_MABX_B.SFunction1_o1_bq = ((real_T) CAN_Sgn.UnsignedSgn);
19884
19885 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
19886 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
19887 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19888 L4_MABX_B.SFunction1_o2_eq = ((real_T) CAN_Sgn.UnsignedSgn);
19889
19890 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
19891 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
19892 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19893 L4_MABX_B.SFunction1_o3_l = ((real_T) CAN_Sgn.UnsignedSgn);
19894
19895 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
19896 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
19897 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19898 L4_MABX_B.SFunction1_o4_l4 = ((real_T) CAN_Sgn.UnsignedSgn);
19899
19900 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
19901 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
19902 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19903 L4_MABX_B.SFunction1_o5_b = ((real_T) CAN_Sgn.UnsignedSgn);
19904
19905 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
19906 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
19907 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19908 L4_MABX_B.SFunction1_o6_ea = ((real_T) CAN_Sgn.UnsignedSgn);
19909
19910 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
19911 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19912 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19913 L4_MABX_B.SFunction1_o7_hz = ((real_T) CAN_Sgn.UnsignedSgn);
19914
19915 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
19916 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
19917 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19918 L4_MABX_B.SFunction1_o8_j2 = ((real_T) CAN_Sgn.UnsignedSgn);
19919 }
19920 }
19921 } else {
19922 /* set RX status to 0 because no new message has arrived */
19923 L4_MABX_B.SFunction1_o9_f = 0.0;
19924 }
19925 }
19926 }
19927
19928 /* End of Outputs for SubSystem: '<S570>/CAN_TYPE1_RX_M3_C2' */
19929
19930 /* DataTypeConversion: '<S570>/Data Type Conversion' */
19931 PositionFinalLimited = L4_MABX_B.SFunction1_o1_bq;
19932 if (PositionFinalLimited < 256.0) {
19933 if (PositionFinalLimited >= 0.0) {
19934 starting_index = (uint8_T)PositionFinalLimited;
19935 } else {
19936 starting_index = 0U;
19937 }
19938 } else {
19939 starting_index = MAX_uint8_T;
19940 }
19941
19942 L4_MABX_B.DataTypeConversion_no = starting_index;
19943
19944 /* End of DataTypeConversion: '<S570>/Data Type Conversion' */
19945
19946 /* DataTypeConversion: '<S570>/Data Type Conversion1' */
19947 PositionFinalLimited = L4_MABX_B.SFunction1_o2_eq;
19948 if (PositionFinalLimited < 256.0) {
19949 if (PositionFinalLimited >= 0.0) {
19950 starting_index = (uint8_T)PositionFinalLimited;
19951 } else {
19952 starting_index = 0U;
19953 }
19954 } else {
19955 starting_index = MAX_uint8_T;
19956 }
19957
19958 L4_MABX_B.DataTypeConversion1_os = starting_index;
19959
19960 /* End of DataTypeConversion: '<S570>/Data Type Conversion1' */
19961
19962 /* DataTypeConversion: '<S570>/Data Type Conversion2' */
19963 PositionFinalLimited = L4_MABX_B.SFunction1_o3_l;
19964 if (PositionFinalLimited < 256.0) {
19965 if (PositionFinalLimited >= 0.0) {
19966 starting_index = (uint8_T)PositionFinalLimited;
19967 } else {
19968 starting_index = 0U;
19969 }
19970 } else {
19971 starting_index = MAX_uint8_T;
19972 }
19973
19974 L4_MABX_B.DataTypeConversion2_kkl = starting_index;
19975
19976 /* End of DataTypeConversion: '<S570>/Data Type Conversion2' */
19977
19978 /* DataTypeConversion: '<S570>/Data Type Conversion3' */
19979 PositionFinalLimited = L4_MABX_B.SFunction1_o4_l4;
19980 if (PositionFinalLimited < 256.0) {
19981 if (PositionFinalLimited >= 0.0) {
19982 starting_index = (uint8_T)PositionFinalLimited;
19983 } else {
19984 starting_index = 0U;
19985 }
19986 } else {
19987 starting_index = MAX_uint8_T;
19988 }
19989
19990 L4_MABX_B.DataTypeConversion3_ft = starting_index;
19991
19992 /* End of DataTypeConversion: '<S570>/Data Type Conversion3' */
19993
19994 /* DataTypeConversion: '<S570>/Data Type Conversion4' */
19995 PositionFinalLimited = L4_MABX_B.SFunction1_o5_b;
19996 if (PositionFinalLimited < 256.0) {
19997 if (PositionFinalLimited >= 0.0) {
19998 starting_index = (uint8_T)PositionFinalLimited;
19999 } else {
20000 starting_index = 0U;
20001 }
20002 } else {
20003 starting_index = MAX_uint8_T;
20004 }
20005
20006 L4_MABX_B.DataTypeConversion4_fd = starting_index;
20007
20008 /* End of DataTypeConversion: '<S570>/Data Type Conversion4' */
20009
20010 /* DataTypeConversion: '<S570>/Data Type Conversion5' */
20011 PositionFinalLimited = L4_MABX_B.SFunction1_o6_ea;
20012 if (PositionFinalLimited < 256.0) {
20013 if (PositionFinalLimited >= 0.0) {
20014 starting_index = (uint8_T)PositionFinalLimited;
20015 } else {
20016 starting_index = 0U;
20017 }
20018 } else {
20019 starting_index = MAX_uint8_T;
20020 }
20021
20022 L4_MABX_B.DataTypeConversion5_i2 = starting_index;
20023
20024 /* End of DataTypeConversion: '<S570>/Data Type Conversion5' */
20025
20026 /* DataTypeConversion: '<S570>/Data Type Conversion6' */
20027 PositionFinalLimited = L4_MABX_B.SFunction1_o7_hz;
20028 if (PositionFinalLimited < 256.0) {
20029 if (PositionFinalLimited >= 0.0) {
20030 starting_index = (uint8_T)PositionFinalLimited;
20031 } else {
20032 starting_index = 0U;
20033 }
20034 } else {
20035 starting_index = MAX_uint8_T;
20036 }
20037
20038 L4_MABX_B.DataTypeConversion6_j = starting_index;
20039
20040 /* End of DataTypeConversion: '<S570>/Data Type Conversion6' */
20041
20042 /* DataTypeConversion: '<S570>/Data Type Conversion7' */
20043 PositionFinalLimited = L4_MABX_B.SFunction1_o8_j2;
20044 if (PositionFinalLimited < 256.0) {
20045 if (PositionFinalLimited >= 0.0) {
20046 starting_index = (uint8_T)PositionFinalLimited;
20047 } else {
20048 starting_index = 0U;
20049 }
20050 } else {
20051 starting_index = MAX_uint8_T;
20052 }
20053
20054 L4_MABX_B.DataTypeConversion7_ch = starting_index;
20055
20056 /* End of DataTypeConversion: '<S570>/Data Type Conversion7' */
20057
20058 /* MultiPortSwitch: '<S430>/Multiport_Switch' incorporates:
20059 * Constant: '<S430>/Constant'
20060 */
20061 switch (PROPB_REAX_CHANNEL_APV) {
20062 case ENUM_CAN_RX_T_RX_CAN_1:
20063 /* DataTypeConversion: '<S568>/Data Type Conversion' */
20064 PositionFinalLimited = L4_MABX_B.SFunction1_o1_j5;
20065 if (PositionFinalLimited < 256.0) {
20066 if (PositionFinalLimited >= 0.0) {
20067 starting_index = (uint8_T)PositionFinalLimited;
20068 } else {
20069 starting_index = 0U;
20070 }
20071 } else {
20072 starting_index = MAX_uint8_T;
20073 }
20074
20075 L4_MABX_B.DataTypeConversion_b4 = starting_index;
20076
20077 /* End of DataTypeConversion: '<S568>/Data Type Conversion' */
20078
20079 /* DataTypeConversion: '<S568>/Data Type Conversion1' */
20080 PositionFinalLimited = L4_MABX_B.SFunction1_o2_mn;
20081 if (PositionFinalLimited < 256.0) {
20082 if (PositionFinalLimited >= 0.0) {
20083 starting_index = (uint8_T)PositionFinalLimited;
20084 } else {
20085 starting_index = 0U;
20086 }
20087 } else {
20088 starting_index = MAX_uint8_T;
20089 }
20090
20091 L4_MABX_B.DataTypeConversion1_al = starting_index;
20092
20093 /* End of DataTypeConversion: '<S568>/Data Type Conversion1' */
20094
20095 /* DataTypeConversion: '<S568>/Data Type Conversion2' */
20096 PositionFinalLimited = L4_MABX_B.SFunction1_o3_of;
20097 if (PositionFinalLimited < 256.0) {
20098 if (PositionFinalLimited >= 0.0) {
20099 starting_index = (uint8_T)PositionFinalLimited;
20100 } else {
20101 starting_index = 0U;
20102 }
20103 } else {
20104 starting_index = MAX_uint8_T;
20105 }
20106
20107 L4_MABX_B.DataTypeConversion2_f5 = starting_index;
20108
20109 /* End of DataTypeConversion: '<S568>/Data Type Conversion2' */
20110
20111 /* DataTypeConversion: '<S568>/Data Type Conversion3' */
20112 PositionFinalLimited = L4_MABX_B.SFunction1_o4_f;
20113 if (PositionFinalLimited < 256.0) {
20114 if (PositionFinalLimited >= 0.0) {
20115 starting_index = (uint8_T)PositionFinalLimited;
20116 } else {
20117 starting_index = 0U;
20118 }
20119 } else {
20120 starting_index = MAX_uint8_T;
20121 }
20122
20123 L4_MABX_B.DataTypeConversion3_j1 = starting_index;
20124
20125 /* End of DataTypeConversion: '<S568>/Data Type Conversion3' */
20126
20127 /* DataTypeConversion: '<S568>/Data Type Conversion4' */
20128 PositionFinalLimited = L4_MABX_B.SFunction1_o5_f3;
20129 if (PositionFinalLimited < 256.0) {
20130 if (PositionFinalLimited >= 0.0) {
20131 starting_index = (uint8_T)PositionFinalLimited;
20132 } else {
20133 starting_index = 0U;
20134 }
20135 } else {
20136 starting_index = MAX_uint8_T;
20137 }
20138
20139 L4_MABX_B.DataTypeConversion4_br = starting_index;
20140
20141 /* End of DataTypeConversion: '<S568>/Data Type Conversion4' */
20142
20143 /* DataTypeConversion: '<S568>/Data Type Conversion5' */
20144 PositionFinalLimited = L4_MABX_B.SFunction1_o6_eaf;
20145 if (PositionFinalLimited < 256.0) {
20146 if (PositionFinalLimited >= 0.0) {
20147 starting_index = (uint8_T)PositionFinalLimited;
20148 } else {
20149 starting_index = 0U;
20150 }
20151 } else {
20152 starting_index = MAX_uint8_T;
20153 }
20154
20155 L4_MABX_B.DataTypeConversion5_f = starting_index;
20156
20157 /* End of DataTypeConversion: '<S568>/Data Type Conversion5' */
20158
20159 /* DataTypeConversion: '<S568>/Data Type Conversion6' */
20160 PositionFinalLimited = L4_MABX_B.SFunction1_o7_n;
20161 if (PositionFinalLimited < 256.0) {
20162 if (PositionFinalLimited >= 0.0) {
20163 starting_index = (uint8_T)PositionFinalLimited;
20164 } else {
20165 starting_index = 0U;
20166 }
20167 } else {
20168 starting_index = MAX_uint8_T;
20169 }
20170
20171 L4_MABX_B.DataTypeConversion6_m2 = starting_index;
20172
20173 /* End of DataTypeConversion: '<S568>/Data Type Conversion6' */
20174
20175 /* DataTypeConversion: '<S568>/Data Type Conversion7' */
20176 PositionFinalLimited = L4_MABX_B.SFunction1_o8_a;
20177 if (PositionFinalLimited < 256.0) {
20178 if (PositionFinalLimited >= 0.0) {
20179 starting_index = (uint8_T)PositionFinalLimited;
20180 } else {
20181 starting_index = 0U;
20182 }
20183 } else {
20184 starting_index = MAX_uint8_T;
20185 }
20186
20187 L4_MABX_B.DataTypeConversion7_p3 = starting_index;
20188
20189 /* End of DataTypeConversion: '<S568>/Data Type Conversion7' */
20190 L4_MABX_B.RawData_j[0] = L4_MABX_B.DataTypeConversion_b4;
20191 L4_MABX_B.RawData_j[1] = L4_MABX_B.DataTypeConversion1_al;
20192 L4_MABX_B.RawData_j[2] = L4_MABX_B.DataTypeConversion2_f5;
20193 L4_MABX_B.RawData_j[3] = L4_MABX_B.DataTypeConversion3_j1;
20194 L4_MABX_B.RawData_j[4] = L4_MABX_B.DataTypeConversion4_br;
20195 L4_MABX_B.RawData_j[5] = L4_MABX_B.DataTypeConversion5_f;
20196 L4_MABX_B.RawData_j[6] = L4_MABX_B.DataTypeConversion6_m2;
20197 L4_MABX_B.RawData_j[7] = L4_MABX_B.DataTypeConversion7_p3;
20198 break;
20199
20200 case ENUM_CAN_RX_T_RX_CAN_2:
20201 L4_MABX_B.RawData_j[0] = L4_MABX_B.DataTypeConversion_e;
20202 L4_MABX_B.RawData_j[1] = L4_MABX_B.DataTypeConversion1_du;
20203 L4_MABX_B.RawData_j[2] = L4_MABX_B.DataTypeConversion2_gg;
20204 L4_MABX_B.RawData_j[3] = L4_MABX_B.DataTypeConversion3_ov;
20205 L4_MABX_B.RawData_j[4] = L4_MABX_B.DataTypeConversion4_op;
20206 L4_MABX_B.RawData_j[5] = L4_MABX_B.DataTypeConversion5_m;
20207 L4_MABX_B.RawData_j[6] = L4_MABX_B.DataTypeConversion6_nx;
20208 L4_MABX_B.RawData_j[7] = L4_MABX_B.DataTypeConversion7_l;
20209 break;
20210
20211 case ENUM_CAN_RX_T_RX_CAN_3:
20212 L4_MABX_B.RawData_j[0] = L4_MABX_B.DataTypeConversion_e;
20213 L4_MABX_B.RawData_j[1] = L4_MABX_B.DataTypeConversion1_du;
20214 L4_MABX_B.RawData_j[2] = L4_MABX_B.DataTypeConversion2_gg;
20215 L4_MABX_B.RawData_j[3] = L4_MABX_B.DataTypeConversion3_ov;
20216 L4_MABX_B.RawData_j[4] = L4_MABX_B.DataTypeConversion4_op;
20217 L4_MABX_B.RawData_j[5] = L4_MABX_B.DataTypeConversion5_m;
20218 L4_MABX_B.RawData_j[6] = L4_MABX_B.DataTypeConversion6_nx;
20219 L4_MABX_B.RawData_j[7] = L4_MABX_B.DataTypeConversion7_l;
20220 break;
20221
20222 case ENUM_CAN_RX_T_RX_CAN_4:
20223 L4_MABX_B.RawData_j[0] = L4_MABX_B.DataTypeConversion_e;
20224 L4_MABX_B.RawData_j[1] = L4_MABX_B.DataTypeConversion1_du;
20225 L4_MABX_B.RawData_j[2] = L4_MABX_B.DataTypeConversion2_gg;
20226 L4_MABX_B.RawData_j[3] = L4_MABX_B.DataTypeConversion3_ov;
20227 L4_MABX_B.RawData_j[4] = L4_MABX_B.DataTypeConversion4_op;
20228 L4_MABX_B.RawData_j[5] = L4_MABX_B.DataTypeConversion5_m;
20229 L4_MABX_B.RawData_j[6] = L4_MABX_B.DataTypeConversion6_nx;
20230 L4_MABX_B.RawData_j[7] = L4_MABX_B.DataTypeConversion7_l;
20231 break;
20232
20233 case ENUM_CAN_RX_T_RX_CAN_5:
20234 L4_MABX_B.RawData_j[0] = L4_MABX_B.DataTypeConversion_e;
20235 L4_MABX_B.RawData_j[1] = L4_MABX_B.DataTypeConversion1_du;
20236 L4_MABX_B.RawData_j[2] = L4_MABX_B.DataTypeConversion2_gg;
20237 L4_MABX_B.RawData_j[3] = L4_MABX_B.DataTypeConversion3_ov;
20238 L4_MABX_B.RawData_j[4] = L4_MABX_B.DataTypeConversion4_op;
20239 L4_MABX_B.RawData_j[5] = L4_MABX_B.DataTypeConversion5_m;
20240 L4_MABX_B.RawData_j[6] = L4_MABX_B.DataTypeConversion6_nx;
20241 L4_MABX_B.RawData_j[7] = L4_MABX_B.DataTypeConversion7_l;
20242 break;
20243
20244 case ENUM_CAN_RX_T_RX_CAN_6:
20245 L4_MABX_B.RawData_j[0] = L4_MABX_B.DataTypeConversion_no;
20246 L4_MABX_B.RawData_j[1] = L4_MABX_B.DataTypeConversion1_os;
20247 L4_MABX_B.RawData_j[2] = L4_MABX_B.DataTypeConversion2_kkl;
20248 L4_MABX_B.RawData_j[3] = L4_MABX_B.DataTypeConversion3_ft;
20249 L4_MABX_B.RawData_j[4] = L4_MABX_B.DataTypeConversion4_fd;
20250 L4_MABX_B.RawData_j[5] = L4_MABX_B.DataTypeConversion5_i2;
20251 L4_MABX_B.RawData_j[6] = L4_MABX_B.DataTypeConversion6_j;
20252 L4_MABX_B.RawData_j[7] = L4_MABX_B.DataTypeConversion7_ch;
20253 break;
20254
20255 default:
20256 L4_MABX_B.RawData_j[0] = L4_MABX_B.DataTypeConversion_no;
20257 L4_MABX_B.RawData_j[1] = L4_MABX_B.DataTypeConversion1_os;
20258 L4_MABX_B.RawData_j[2] = L4_MABX_B.DataTypeConversion2_kkl;
20259 L4_MABX_B.RawData_j[3] = L4_MABX_B.DataTypeConversion3_ft;
20260 L4_MABX_B.RawData_j[4] = L4_MABX_B.DataTypeConversion4_fd;
20261 L4_MABX_B.RawData_j[5] = L4_MABX_B.DataTypeConversion5_i2;
20262 L4_MABX_B.RawData_j[6] = L4_MABX_B.DataTypeConversion6_j;
20263 L4_MABX_B.RawData_j[7] = L4_MABX_B.DataTypeConversion7_ch;
20264 break;
20265 }
20266
20267 /* S-Function (sfix_bitop): '<S658>/Operator' */
20268 L4_MABX_B.Operator_dx = (uint8_T)(L4_MABX_B.RawData_j[0] &
20269 L4_MABX_P.Operator_BitMask_em);
20270
20271 /* DataTypeConversion: '<S658>/DataType' */
20272 L4_MABX_B.DataType_pb = L4_MABX_B.Operator_dx;
20273
20274 /* DataTypeConversion: '<S405>/Data Type Conversion' */
20275 REAX_Current_Mode = L4_MABX_B.DataType_pb;
20276
20277 /* S-Function (sfix_bitop): '<S657>/Operator' */
20278 L4_MABX_B.Operator_cg = (uint8_T)(L4_MABX_B.RawData_j[0] &
20279 L4_MABX_P.Operator_BitMask_j2);
20280
20281 /* DataTypeConversion: '<S657>/DataType' */
20282 L4_MABX_B.DataType_ig = L4_MABX_B.Operator_cg;
20283
20284 /* ArithShift: '<S652>/Shift_Arithmetic ' */
20285 L4_MABX_B.PropB_REAX_3_ReqOperatingMode = (uint8_T)((uint32_T)
20286 L4_MABX_B.DataType_ig >> 4);
20287
20288 /* DataTypeConversion: '<S405>/Data Type Conversion1' */
20289 REAX_Req_Mode = L4_MABX_B.PropB_REAX_3_ReqOperatingMode;
20290
20291 /* DataTypeConversion: '<S405>/Data Type Conversion2' */
20292 REAX_Status = L4_MABX_B.RawData_j[1];
20293
20294 /* DataTypeConversion: '<S654>/Data Type Conversion1' */
20295 L4_MABX_B.DataTypeConversion1_ev = L4_MABX_B.RawData_j[2];
20296
20297 /* DataTypeConversion: '<S654>/Data Type Conversion2' */
20298 L4_MABX_B.DataTypeConversion2_pwh = L4_MABX_B.RawData_j[3];
20299
20300 /* ArithShift: '<S654>/Shift_Arithmetic 1' */
20301 L4_MABX_B.Shift_Arithmetic1_oi = (uint16_T)(L4_MABX_B.DataTypeConversion2_pwh <<
20302 8);
20303
20304 /* S-Function (sfix_bitop): '<S659>/Operator' */
20305 L4_MABX_B.Operator_j = (uint16_T)(L4_MABX_B.DataTypeConversion1_ev |
20306 L4_MABX_B.Shift_Arithmetic1_oi);
20307
20308 /* DataTypeConversion: '<S659>/DataType' */
20309 L4_MABX_B.DataType_jv = L4_MABX_B.Operator_j;
20310
20311 /* DataTypeConversion: '<S654>/Data Type Conversion3' */
20312 L4_MABX_B.DataTypeConversion3_l4 = (int16_T)L4_MABX_B.DataType_jv;
20313
20314 /* DataTypeConversion: '<S654>/Data Type Conversion4' */
20315 L4_MABX_B.DataTypeConversion4_e = L4_MABX_B.DataTypeConversion3_l4;
20316
20317 /* Product: '<S654>/Product' incorporates:
20318 * Constant: '<S654>/Constant'
20319 */
20320 L4_MABX_B.PropB_REAX_3_HandwheelTorque = (real32_T)
20321 (L4_MABX_B.DataTypeConversion4_e * L4_MABX_P.Constant_Value_hl);
20322
20323 /* DataTypeConversion: '<S405>/Data Type Conversion3' */
20324 REAX_Handwheel_Torque = L4_MABX_B.PropB_REAX_3_HandwheelTorque;
20325
20326 /* DataTypeConversion: '<S655>/Data Type Conversion4' */
20327 L4_MABX_B.DataTypeConversion4_i0 = L4_MABX_B.RawData_j[4];
20328
20329 /* DataTypeConversion: '<S655>/Data Type Conversion5' */
20330 L4_MABX_B.DataTypeConversion5_pc = L4_MABX_B.RawData_j[5];
20331
20332 /* ArithShift: '<S655>/Shift_Arithmetic 2' */
20333 L4_MABX_B.Shift_Arithmetic2_i = (uint16_T)(L4_MABX_B.DataTypeConversion5_pc <<
20334 8);
20335
20336 /* S-Function (sfix_bitop): '<S660>/Operator' */
20337 L4_MABX_B.Operator_cr = (uint16_T)(L4_MABX_B.DataTypeConversion4_i0 |
20338 L4_MABX_B.Shift_Arithmetic2_i);
20339
20340 /* DataTypeConversion: '<S660>/DataType' */
20341 L4_MABX_B.DataType_oz = L4_MABX_B.Operator_cr;
20342
20343 /* DataTypeConversion: '<S655>/Data Type Conversion6' */
20344 L4_MABX_B.DataTypeConversion6_f0 = (int16_T)L4_MABX_B.DataType_oz;
20345
20346 /* DataTypeConversion: '<S655>/Data Type Conversion1' */
20347 L4_MABX_B.DataTypeConversion1_m = L4_MABX_B.DataTypeConversion6_f0;
20348
20349 /* Product: '<S655>/Product1' incorporates:
20350 * Constant: '<S655>/Constant1'
20351 */
20352 L4_MABX_B.PropB_REAX_3_HandwheelVelocity = (real32_T)
20353 (L4_MABX_B.DataTypeConversion1_m * L4_MABX_P.Constant1_Value_nv);
20354
20355 /* DataTypeConversion: '<S405>/Data Type Conversion4' */
20356 REAX_Handwheel_Velocity = L4_MABX_B.PropB_REAX_3_HandwheelVelocity;
20357
20358 /* DataTypeConversion: '<S656>/Data Type Conversion7' */
20359 L4_MABX_B.DataTypeConversion7_a = L4_MABX_B.RawData_j[6];
20360
20361 /* DataTypeConversion: '<S656>/Data Type Conversion8' */
20362 L4_MABX_B.DataTypeConversion8_b = L4_MABX_B.RawData_j[7];
20363
20364 /* ArithShift: '<S656>/Shift_Arithmetic 3' */
20365 L4_MABX_B.Shift_Arithmetic3_d = (uint16_T)(L4_MABX_B.DataTypeConversion8_b <<
20366 8);
20367
20368 /* S-Function (sfix_bitop): '<S661>/Operator' */
20369 L4_MABX_B.Operator_ln = (uint16_T)(L4_MABX_B.DataTypeConversion7_a |
20370 L4_MABX_B.Shift_Arithmetic3_d);
20371
20372 /* DataTypeConversion: '<S661>/DataType' */
20373 L4_MABX_B.DataType_bm = L4_MABX_B.Operator_ln;
20374
20375 /* DataTypeConversion: '<S656>/Data Type Conversion9' */
20376 L4_MABX_B.DataTypeConversion9_e = (int16_T)L4_MABX_B.DataType_bm;
20377
20378 /* DataTypeConversion: '<S656>/Data Type Conversion1' */
20379 L4_MABX_B.DataTypeConversion1_n = L4_MABX_B.DataTypeConversion9_e;
20380
20381 /* Product: '<S656>/Product2' incorporates:
20382 * Constant: '<S656>/Constant2'
20383 */
20384 L4_MABX_B.PropB_REAX_3_PullCompensation = (real32_T)
20385 (L4_MABX_B.DataTypeConversion1_n * L4_MABX_P.Constant2_Value_dm);
20386
20387 /* DataTypeConversion: '<S405>/Data Type Conversion5' */
20388 REAX_Pull_Compensation = L4_MABX_B.PropB_REAX_3_PullCompensation;
20389
20390 /* DataTypeConversion: '<S569>/Data Type Conversion8' */
20391 L4_MABX_B.RX_status_gt = (L4_MABX_B.SFunction1_o9_h != 0.0);
20392
20393 /* DataTypeConversion: '<S570>/Data Type Conversion8' */
20394 L4_MABX_B.RX_status_io = (L4_MABX_B.SFunction1_o9_f != 0.0);
20395
20396 /* MultiPortSwitch: '<S430>/Multiport_Switch' incorporates:
20397 * Constant: '<S430>/Constant'
20398 */
20399 switch (PROPB_REAX_CHANNEL_APV) {
20400 case ENUM_CAN_RX_T_RX_CAN_1:
20401 /* DataTypeConversion: '<S568>/Data Type Conversion8' */
20402 L4_MABX_B.RX_status_ol = (L4_MABX_B.SFunction1_o9_cl != 0.0);
20403 L4_MABX_B.RX_status_ou = L4_MABX_B.RX_status_ol;
20404 break;
20405
20406 case ENUM_CAN_RX_T_RX_CAN_2:
20407 L4_MABX_B.RX_status_ou = L4_MABX_B.RX_status_gt;
20408 break;
20409
20410 case ENUM_CAN_RX_T_RX_CAN_3:
20411 L4_MABX_B.RX_status_ou = L4_MABX_B.RX_status_gt;
20412 break;
20413
20414 case ENUM_CAN_RX_T_RX_CAN_4:
20415 L4_MABX_B.RX_status_ou = L4_MABX_B.RX_status_gt;
20416 break;
20417
20418 case ENUM_CAN_RX_T_RX_CAN_5:
20419 L4_MABX_B.RX_status_ou = L4_MABX_B.RX_status_gt;
20420 break;
20421
20422 case ENUM_CAN_RX_T_RX_CAN_6:
20423 L4_MABX_B.RX_status_ou = L4_MABX_B.RX_status_io;
20424 break;
20425
20426 default:
20427 L4_MABX_B.RX_status_ou = L4_MABX_B.RX_status_io;
20428 break;
20429 }
20430
20431 /* DataTypeConversion: '<S569>/Data Type Conversion9' */
20432 L4_MABX_B.RX_time_a5 = L4_MABX_B.SFunction1_o10_e;
20433
20434 /* DataTypeConversion: '<S570>/Data Type Conversion9' */
20435 L4_MABX_B.RX_time_e = L4_MABX_B.SFunction1_o10_a;
20436
20437 /* MultiPortSwitch: '<S430>/Multiport_Switch' incorporates:
20438 * Constant: '<S430>/Constant'
20439 */
20440 switch (PROPB_REAX_CHANNEL_APV) {
20441 case ENUM_CAN_RX_T_RX_CAN_1:
20442 /* DataTypeConversion: '<S568>/Data Type Conversion9' */
20443 L4_MABX_B.RX_time_dk = L4_MABX_B.SFunction1_o10_eg;
20444 L4_MABX_B.RX_time_nep = L4_MABX_B.RX_time_dk;
20445 break;
20446
20447 case ENUM_CAN_RX_T_RX_CAN_2:
20448 L4_MABX_B.RX_time_nep = L4_MABX_B.RX_time_a5;
20449 break;
20450
20451 case ENUM_CAN_RX_T_RX_CAN_3:
20452 L4_MABX_B.RX_time_nep = L4_MABX_B.RX_time_a5;
20453 break;
20454
20455 case ENUM_CAN_RX_T_RX_CAN_4:
20456 L4_MABX_B.RX_time_nep = L4_MABX_B.RX_time_a5;
20457 break;
20458
20459 case ENUM_CAN_RX_T_RX_CAN_5:
20460 L4_MABX_B.RX_time_nep = L4_MABX_B.RX_time_a5;
20461 break;
20462
20463 case ENUM_CAN_RX_T_RX_CAN_6:
20464 L4_MABX_B.RX_time_nep = L4_MABX_B.RX_time_e;
20465 break;
20466
20467 default:
20468 L4_MABX_B.RX_time_nep = L4_MABX_B.RX_time_e;
20469 break;
20470 }
20471
20472 /* DataTypeConversion: '<S569>/Data Type Conversion10' */
20473 L4_MABX_B.RX_delta_time_ks = L4_MABX_B.SFunction1_o11_e;
20474
20475 /* DataTypeConversion: '<S570>/Data Type Conversion10' */
20476 L4_MABX_B.RX_delta_time_d = L4_MABX_B.SFunction1_o11_l;
20477
20478 /* MultiPortSwitch: '<S430>/Multiport_Switch' incorporates:
20479 * Constant: '<S430>/Constant'
20480 */
20481 switch (PROPB_REAX_CHANNEL_APV) {
20482 case ENUM_CAN_RX_T_RX_CAN_1:
20483 /* DataTypeConversion: '<S568>/Data Type Conversion10' */
20484 L4_MABX_B.RX_delta_time_kg = L4_MABX_B.SFunction1_o11_g;
20485 L4_MABX_B.RX_delta_time_fb = L4_MABX_B.RX_delta_time_kg;
20486 break;
20487
20488 case ENUM_CAN_RX_T_RX_CAN_2:
20489 L4_MABX_B.RX_delta_time_fb = L4_MABX_B.RX_delta_time_ks;
20490 break;
20491
20492 case ENUM_CAN_RX_T_RX_CAN_3:
20493 L4_MABX_B.RX_delta_time_fb = L4_MABX_B.RX_delta_time_ks;
20494 break;
20495
20496 case ENUM_CAN_RX_T_RX_CAN_4:
20497 L4_MABX_B.RX_delta_time_fb = L4_MABX_B.RX_delta_time_ks;
20498 break;
20499
20500 case ENUM_CAN_RX_T_RX_CAN_5:
20501 L4_MABX_B.RX_delta_time_fb = L4_MABX_B.RX_delta_time_ks;
20502 break;
20503
20504 case ENUM_CAN_RX_T_RX_CAN_6:
20505 L4_MABX_B.RX_delta_time_fb = L4_MABX_B.RX_delta_time_d;
20506 break;
20507
20508 default:
20509 L4_MABX_B.RX_delta_time_fb = L4_MABX_B.RX_delta_time_d;
20510 break;
20511 }
20512
20513 /* RelationalOperator: '<S577>/Operator' incorporates:
20514 * Constant: '<S430>/Constant'
20515 * Constant: '<S571>/Constant2'
20516 */
20517 L4_MABX_B.Operator_d3w = (PROPB_REAX_CHANNEL_APV ==
20518 L4_MABX_P.Constant2_Value_pj);
20519
20520 /* RelationalOperator: '<S578>/Operator' incorporates:
20521 * Constant: '<S430>/Constant'
20522 * Constant: '<S571>/Constant3'
20523 */
20524 L4_MABX_B.Operator_nm = (PROPB_REAX_CHANNEL_APV ==
20525 L4_MABX_P.Constant3_Value_i3);
20526
20527 /* RelationalOperator: '<S579>/Operator' incorporates:
20528 * Constant: '<S430>/Constant'
20529 * Constant: '<S571>/Constant4'
20530 */
20531 L4_MABX_B.Operator_np = (PROPB_REAX_CHANNEL_APV == L4_MABX_P.Constant4_Value_e);
20532
20533 /* RelationalOperator: '<S588>/Operator' incorporates:
20534 * Constant: '<S431>/Constant'
20535 * Constant: '<S584>/Constant'
20536 */
20537 L4_MABX_B.Operator_npf = (PROPB_REAX_CHANNEL_APV ==
20538 L4_MABX_P.Constant_Value_mc);
20539
20540 /* Outputs for Enabled SubSystem: '<S581>/CAN_TYPE1_RX_M1_C1' incorporates:
20541 * EnablePort: '<S585>/Enable'
20542 */
20543 if (L4_MABX_B.Operator_npf) {
20544 /* S-Function (rti_commonblock): '<S585>/S-Function1' */
20545 /* This comment workarounds a code generation problem */
20546
20547 /* dSPACE RTICAN RX Message Block: "PropB_REAX_4_13" Id:419428115 */
20548 {
20549 UInt32 *CAN_Msg;
20550 static dsfloat time_old = 0.0;
20551
20552 /* Read status and timestamp info (previous message) */
20553 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF713].timestamp !=
20554 time_old) {
20555 /* ... save timestamp info for the calculation of the RX status
20556 during the consecutive sample hit*/
20557 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF713].
20558 timestamp;
20559
20560 /* ... set the processed flag to one */
20561 L4_MABX_B.SFunction1_o9_me = 1.0;
20562 L4_MABX_B.SFunction1_o10_j = (real_T)
20563 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF713].timestamp;
20564 L4_MABX_B.SFunction1_o11_b = (real_T)
20565 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF713].deltatime;
20566 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF713].data;
20567
20568 /* Decode CAN message */
20569 {
20570 {
20571 rtican_Signal_t CAN_Sgn;
20572
20573 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
20574 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
20575 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20576 L4_MABX_B.SFunction1_o1_ak = ((real_T) CAN_Sgn.UnsignedSgn);
20577
20578 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
20579 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
20580 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20581 L4_MABX_B.SFunction1_o2_lh = ((real_T) CAN_Sgn.UnsignedSgn);
20582
20583 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
20584 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
20585 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20586 L4_MABX_B.SFunction1_o3_cj = ((real_T) CAN_Sgn.UnsignedSgn);
20587
20588 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
20589 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
20590 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20591 L4_MABX_B.SFunction1_o4_js = ((real_T) CAN_Sgn.UnsignedSgn);
20592
20593 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
20594 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
20595 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20596 L4_MABX_B.SFunction1_o5_ow = ((real_T) CAN_Sgn.UnsignedSgn);
20597
20598 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
20599 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
20600 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20601 L4_MABX_B.SFunction1_o6_c = ((real_T) CAN_Sgn.UnsignedSgn);
20602
20603 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
20604 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
20605 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20606 L4_MABX_B.SFunction1_o7_ps = ((real_T) CAN_Sgn.UnsignedSgn);
20607
20608 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
20609 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
20610 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20611 L4_MABX_B.SFunction1_o8_m = ((real_T) CAN_Sgn.UnsignedSgn);
20612 }
20613 }
20614 } else {
20615 /* set RX status to 0 because no new message has arrived */
20616 L4_MABX_B.SFunction1_o9_me = 0.0;
20617 }
20618 }
20619 }
20620
20621 /* End of Outputs for SubSystem: '<S581>/CAN_TYPE1_RX_M1_C1' */
20622
20623 /* RelationalOperator: '<S589>/Operator' incorporates:
20624 * Constant: '<S431>/Constant'
20625 * Constant: '<S584>/Constant1'
20626 */
20627 L4_MABX_B.Operator_bj = (PROPB_REAX_CHANNEL_APV ==
20628 L4_MABX_P.Constant1_Value_cl);
20629
20630 /* Outputs for Enabled SubSystem: '<S582>/CAN_TYPE1_RX_M1_C2' incorporates:
20631 * EnablePort: '<S586>/Enable'
20632 */
20633 if (L4_MABX_B.Operator_bj) {
20634 /* S-Function (rti_commonblock): '<S586>/S-Function1' */
20635 /* This comment workarounds a code generation problem */
20636
20637 /* dSPACE RTICAN RX Message Block: "PropB_REAX_4_13" Id:419428115 */
20638 {
20639 UInt32 *CAN_Msg;
20640 static dsfloat time_old = 0.0;
20641
20642 /* Read status and timestamp info (previous message) */
20643 if (can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF713].timestamp !=
20644 time_old) {
20645 /* ... save timestamp info for the calculation of the RX status
20646 during the consecutive sample hit*/
20647 time_old = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF713].
20648 timestamp;
20649
20650 /* ... set the processed flag to one */
20651 L4_MABX_B.SFunction1_o9_mt = 1.0;
20652 L4_MABX_B.SFunction1_o10_c = (real_T)
20653 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF713].timestamp;
20654 L4_MABX_B.SFunction1_o11_i = (real_T)
20655 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF713].deltatime;
20656 CAN_Msg = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF713].data;
20657
20658 /* Decode CAN message */
20659 {
20660 {
20661 rtican_Signal_t CAN_Sgn;
20662
20663 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
20664 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
20665 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20666 L4_MABX_B.SFunction1_o1_ge = ((real_T) CAN_Sgn.UnsignedSgn);
20667
20668 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
20669 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
20670 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20671 L4_MABX_B.SFunction1_o2_kk = ((real_T) CAN_Sgn.UnsignedSgn);
20672
20673 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
20674 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
20675 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20676 L4_MABX_B.SFunction1_o3_mg = ((real_T) CAN_Sgn.UnsignedSgn);
20677
20678 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
20679 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
20680 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20681 L4_MABX_B.SFunction1_o4_ea = ((real_T) CAN_Sgn.UnsignedSgn);
20682
20683 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
20684 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
20685 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20686 L4_MABX_B.SFunction1_o5_gx = ((real_T) CAN_Sgn.UnsignedSgn);
20687
20688 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
20689 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
20690 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20691 L4_MABX_B.SFunction1_o6_a = ((real_T) CAN_Sgn.UnsignedSgn);
20692
20693 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
20694 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
20695 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20696 L4_MABX_B.SFunction1_o7_ht = ((real_T) CAN_Sgn.UnsignedSgn);
20697
20698 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
20699 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
20700 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20701 L4_MABX_B.SFunction1_o8_b0 = ((real_T) CAN_Sgn.UnsignedSgn);
20702 }
20703 }
20704 } else {
20705 /* set RX status to 0 because no new message has arrived */
20706 L4_MABX_B.SFunction1_o9_mt = 0.0;
20707 }
20708 }
20709 }
20710
20711 /* End of Outputs for SubSystem: '<S582>/CAN_TYPE1_RX_M1_C2' */
20712
20713 /* RelationalOperator: '<S593>/Operator' incorporates:
20714 * Constant: '<S431>/Constant'
20715 * Constant: '<S584>/Constant5'
20716 */
20717 L4_MABX_B.Operator_op = (PROPB_REAX_CHANNEL_APV == L4_MABX_P.Constant5_Value_l);
20718
20719 /* Outputs for Enabled SubSystem: '<S583>/CAN_TYPE1_RX_M3_C2' incorporates:
20720 * EnablePort: '<S587>/Enable'
20721 */
20722 if (L4_MABX_B.Operator_op) {
20723 /* S-Function (rti_commonblock): '<S587>/S-Function1' */
20724 /* This comment workarounds a code generation problem */
20725
20726 /* dSPACE RTICAN RX Message Block: "PropB_REAX_4_13" Id:419428115 */
20727 {
20728 UInt32 *CAN_Msg;
20729 static dsfloat time_old = 0.0;
20730
20731 /* Read status and timestamp info (previous message) */
20732 if (can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x18FFF713].timestamp !=
20733 time_old) {
20734 /* ... save timestamp info for the calculation of the RX status
20735 during the consecutive sample hit*/
20736 time_old = can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x18FFF713].
20737 timestamp;
20738
20739 /* ... set the processed flag to one */
20740 L4_MABX_B.SFunction1_o9_a = 1.0;
20741 L4_MABX_B.SFunction1_o10_n = (real_T)
20742 can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x18FFF713].timestamp;
20743 L4_MABX_B.SFunction1_o11_n = (real_T)
20744 can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x18FFF713].deltatime;
20745 CAN_Msg = can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x18FFF713].data;
20746
20747 /* Decode CAN message */
20748 {
20749 {
20750 rtican_Signal_t CAN_Sgn;
20751
20752 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
20753 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
20754 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20755 L4_MABX_B.SFunction1_o1_km = ((real_T) CAN_Sgn.UnsignedSgn);
20756
20757 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
20758 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
20759 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20760 L4_MABX_B.SFunction1_o2_old = ((real_T) CAN_Sgn.UnsignedSgn);
20761
20762 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
20763 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
20764 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20765 L4_MABX_B.SFunction1_o3_il = ((real_T) CAN_Sgn.UnsignedSgn);
20766
20767 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
20768 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
20769 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20770 L4_MABX_B.SFunction1_o4_aj = ((real_T) CAN_Sgn.UnsignedSgn);
20771
20772 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
20773 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
20774 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20775 L4_MABX_B.SFunction1_o5_d = ((real_T) CAN_Sgn.UnsignedSgn);
20776
20777 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
20778 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
20779 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20780 L4_MABX_B.SFunction1_o6_el = ((real_T) CAN_Sgn.UnsignedSgn);
20781
20782 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
20783 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
20784 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20785 L4_MABX_B.SFunction1_o7_f = ((real_T) CAN_Sgn.UnsignedSgn);
20786
20787 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
20788 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
20789 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20790 L4_MABX_B.SFunction1_o8_b = ((real_T) CAN_Sgn.UnsignedSgn);
20791 }
20792 }
20793 } else {
20794 /* set RX status to 0 because no new message has arrived */
20795 L4_MABX_B.SFunction1_o9_a = 0.0;
20796 }
20797 }
20798 }
20799
20800 /* End of Outputs for SubSystem: '<S583>/CAN_TYPE1_RX_M3_C2' */
20801
20802 /* DataTypeConversion: '<S583>/Data Type Conversion' */
20803 PositionFinalLimited = L4_MABX_B.SFunction1_o1_km;
20804 if (PositionFinalLimited < 256.0) {
20805 if (PositionFinalLimited >= 0.0) {
20806 starting_index = (uint8_T)PositionFinalLimited;
20807 } else {
20808 starting_index = 0U;
20809 }
20810 } else {
20811 starting_index = MAX_uint8_T;
20812 }
20813
20814 L4_MABX_B.DataTypeConversion_fm = starting_index;
20815
20816 /* End of DataTypeConversion: '<S583>/Data Type Conversion' */
20817
20818 /* DataTypeConversion: '<S583>/Data Type Conversion1' */
20819 PositionFinalLimited = L4_MABX_B.SFunction1_o2_old;
20820 if (PositionFinalLimited < 256.0) {
20821 if (PositionFinalLimited >= 0.0) {
20822 starting_index = (uint8_T)PositionFinalLimited;
20823 } else {
20824 starting_index = 0U;
20825 }
20826 } else {
20827 starting_index = MAX_uint8_T;
20828 }
20829
20830 L4_MABX_B.DataTypeConversion1_ow = starting_index;
20831
20832 /* End of DataTypeConversion: '<S583>/Data Type Conversion1' */
20833
20834 /* DataTypeConversion: '<S583>/Data Type Conversion2' */
20835 PositionFinalLimited = L4_MABX_B.SFunction1_o3_il;
20836 if (PositionFinalLimited < 256.0) {
20837 if (PositionFinalLimited >= 0.0) {
20838 starting_index = (uint8_T)PositionFinalLimited;
20839 } else {
20840 starting_index = 0U;
20841 }
20842 } else {
20843 starting_index = MAX_uint8_T;
20844 }
20845
20846 L4_MABX_B.DataTypeConversion2_mo = starting_index;
20847
20848 /* End of DataTypeConversion: '<S583>/Data Type Conversion2' */
20849
20850 /* DataTypeConversion: '<S583>/Data Type Conversion3' */
20851 PositionFinalLimited = L4_MABX_B.SFunction1_o4_aj;
20852 if (PositionFinalLimited < 256.0) {
20853 if (PositionFinalLimited >= 0.0) {
20854 starting_index = (uint8_T)PositionFinalLimited;
20855 } else {
20856 starting_index = 0U;
20857 }
20858 } else {
20859 starting_index = MAX_uint8_T;
20860 }
20861
20862 L4_MABX_B.DataTypeConversion3_hf = starting_index;
20863
20864 /* End of DataTypeConversion: '<S583>/Data Type Conversion3' */
20865
20866 /* DataTypeConversion: '<S583>/Data Type Conversion4' */
20867 PositionFinalLimited = L4_MABX_B.SFunction1_o5_d;
20868 if (PositionFinalLimited < 256.0) {
20869 if (PositionFinalLimited >= 0.0) {
20870 starting_index = (uint8_T)PositionFinalLimited;
20871 } else {
20872 starting_index = 0U;
20873 }
20874 } else {
20875 starting_index = MAX_uint8_T;
20876 }
20877
20878 L4_MABX_B.DataTypeConversion4_f1 = starting_index;
20879
20880 /* End of DataTypeConversion: '<S583>/Data Type Conversion4' */
20881
20882 /* DataTypeConversion: '<S583>/Data Type Conversion5' */
20883 PositionFinalLimited = L4_MABX_B.SFunction1_o6_el;
20884 if (PositionFinalLimited < 256.0) {
20885 if (PositionFinalLimited >= 0.0) {
20886 starting_index = (uint8_T)PositionFinalLimited;
20887 } else {
20888 starting_index = 0U;
20889 }
20890 } else {
20891 starting_index = MAX_uint8_T;
20892 }
20893
20894 L4_MABX_B.DataTypeConversion5_ee = starting_index;
20895
20896 /* End of DataTypeConversion: '<S583>/Data Type Conversion5' */
20897
20898 /* DataTypeConversion: '<S583>/Data Type Conversion6' */
20899 PositionFinalLimited = L4_MABX_B.SFunction1_o7_f;
20900 if (PositionFinalLimited < 256.0) {
20901 if (PositionFinalLimited >= 0.0) {
20902 starting_index = (uint8_T)PositionFinalLimited;
20903 } else {
20904 starting_index = 0U;
20905 }
20906 } else {
20907 starting_index = MAX_uint8_T;
20908 }
20909
20910 L4_MABX_B.DataTypeConversion6_dt = starting_index;
20911
20912 /* End of DataTypeConversion: '<S583>/Data Type Conversion6' */
20913
20914 /* DataTypeConversion: '<S583>/Data Type Conversion7' */
20915 PositionFinalLimited = L4_MABX_B.SFunction1_o8_b;
20916 if (PositionFinalLimited < 256.0) {
20917 if (PositionFinalLimited >= 0.0) {
20918 starting_index = (uint8_T)PositionFinalLimited;
20919 } else {
20920 starting_index = 0U;
20921 }
20922 } else {
20923 starting_index = MAX_uint8_T;
20924 }
20925
20926 L4_MABX_B.DataTypeConversion7_p5 = starting_index;
20927
20928 /* End of DataTypeConversion: '<S583>/Data Type Conversion7' */
20929
20930 /* MultiPortSwitch: '<S431>/Multiport_Switch' incorporates:
20931 * Constant: '<S431>/Constant'
20932 */
20933 switch (PROPB_REAX_CHANNEL_APV) {
20934 case ENUM_CAN_RX_T_RX_CAN_1:
20935 /* DataTypeConversion: '<S581>/Data Type Conversion' */
20936 PositionFinalLimited = L4_MABX_B.SFunction1_o1_ak;
20937 if (PositionFinalLimited < 256.0) {
20938 if (PositionFinalLimited >= 0.0) {
20939 starting_index = (uint8_T)PositionFinalLimited;
20940 } else {
20941 starting_index = 0U;
20942 }
20943 } else {
20944 starting_index = MAX_uint8_T;
20945 }
20946
20947 L4_MABX_B.DataTypeConversion_cj = starting_index;
20948
20949 /* End of DataTypeConversion: '<S581>/Data Type Conversion' */
20950
20951 /* DataTypeConversion: '<S581>/Data Type Conversion1' */
20952 PositionFinalLimited = L4_MABX_B.SFunction1_o2_lh;
20953 if (PositionFinalLimited < 256.0) {
20954 if (PositionFinalLimited >= 0.0) {
20955 starting_index = (uint8_T)PositionFinalLimited;
20956 } else {
20957 starting_index = 0U;
20958 }
20959 } else {
20960 starting_index = MAX_uint8_T;
20961 }
20962
20963 L4_MABX_B.DataTypeConversion1_mk = starting_index;
20964
20965 /* End of DataTypeConversion: '<S581>/Data Type Conversion1' */
20966
20967 /* DataTypeConversion: '<S581>/Data Type Conversion2' */
20968 PositionFinalLimited = L4_MABX_B.SFunction1_o3_cj;
20969 if (PositionFinalLimited < 256.0) {
20970 if (PositionFinalLimited >= 0.0) {
20971 starting_index = (uint8_T)PositionFinalLimited;
20972 } else {
20973 starting_index = 0U;
20974 }
20975 } else {
20976 starting_index = MAX_uint8_T;
20977 }
20978
20979 L4_MABX_B.DataTypeConversion2_jn = starting_index;
20980
20981 /* End of DataTypeConversion: '<S581>/Data Type Conversion2' */
20982
20983 /* DataTypeConversion: '<S581>/Data Type Conversion3' */
20984 PositionFinalLimited = L4_MABX_B.SFunction1_o4_js;
20985 if (PositionFinalLimited < 256.0) {
20986 if (PositionFinalLimited >= 0.0) {
20987 starting_index = (uint8_T)PositionFinalLimited;
20988 } else {
20989 starting_index = 0U;
20990 }
20991 } else {
20992 starting_index = MAX_uint8_T;
20993 }
20994
20995 L4_MABX_B.DataTypeConversion3_ox = starting_index;
20996
20997 /* End of DataTypeConversion: '<S581>/Data Type Conversion3' */
20998
20999 /* DataTypeConversion: '<S581>/Data Type Conversion4' */
21000 PositionFinalLimited = L4_MABX_B.SFunction1_o5_ow;
21001 if (PositionFinalLimited < 256.0) {
21002 if (PositionFinalLimited >= 0.0) {
21003 starting_index = (uint8_T)PositionFinalLimited;
21004 } else {
21005 starting_index = 0U;
21006 }
21007 } else {
21008 starting_index = MAX_uint8_T;
21009 }
21010
21011 L4_MABX_B.DataTypeConversion4_bw = starting_index;
21012
21013 /* End of DataTypeConversion: '<S581>/Data Type Conversion4' */
21014
21015 /* DataTypeConversion: '<S581>/Data Type Conversion5' */
21016 PositionFinalLimited = L4_MABX_B.SFunction1_o6_c;
21017 if (PositionFinalLimited < 256.0) {
21018 if (PositionFinalLimited >= 0.0) {
21019 starting_index = (uint8_T)PositionFinalLimited;
21020 } else {
21021 starting_index = 0U;
21022 }
21023 } else {
21024 starting_index = MAX_uint8_T;
21025 }
21026
21027 L4_MABX_B.DataTypeConversion5_oe = starting_index;
21028
21029 /* End of DataTypeConversion: '<S581>/Data Type Conversion5' */
21030
21031 /* DataTypeConversion: '<S581>/Data Type Conversion6' */
21032 PositionFinalLimited = L4_MABX_B.SFunction1_o7_ps;
21033 if (PositionFinalLimited < 256.0) {
21034 if (PositionFinalLimited >= 0.0) {
21035 starting_index = (uint8_T)PositionFinalLimited;
21036 } else {
21037 starting_index = 0U;
21038 }
21039 } else {
21040 starting_index = MAX_uint8_T;
21041 }
21042
21043 L4_MABX_B.DataTypeConversion6_o = starting_index;
21044
21045 /* End of DataTypeConversion: '<S581>/Data Type Conversion6' */
21046
21047 /* DataTypeConversion: '<S581>/Data Type Conversion7' */
21048 PositionFinalLimited = L4_MABX_B.SFunction1_o8_m;
21049 if (PositionFinalLimited < 256.0) {
21050 if (PositionFinalLimited >= 0.0) {
21051 starting_index = (uint8_T)PositionFinalLimited;
21052 } else {
21053 starting_index = 0U;
21054 }
21055 } else {
21056 starting_index = MAX_uint8_T;
21057 }
21058
21059 L4_MABX_B.DataTypeConversion7_ek = starting_index;
21060
21061 /* End of DataTypeConversion: '<S581>/Data Type Conversion7' */
21062 L4_MABX_B.RawData_er[0] = L4_MABX_B.DataTypeConversion_cj;
21063 L4_MABX_B.RawData_er[1] = L4_MABX_B.DataTypeConversion1_mk;
21064 L4_MABX_B.RawData_er[2] = L4_MABX_B.DataTypeConversion2_jn;
21065 L4_MABX_B.RawData_er[3] = L4_MABX_B.DataTypeConversion3_ox;
21066 L4_MABX_B.RawData_er[4] = L4_MABX_B.DataTypeConversion4_bw;
21067 L4_MABX_B.RawData_er[5] = L4_MABX_B.DataTypeConversion5_oe;
21068 L4_MABX_B.RawData_er[6] = L4_MABX_B.DataTypeConversion6_o;
21069 L4_MABX_B.RawData_er[7] = L4_MABX_B.DataTypeConversion7_ek;
21070 break;
21071
21072 case ENUM_CAN_RX_T_RX_CAN_2:
21073 /* DataTypeConversion: '<S582>/Data Type Conversion' */
21074 PositionFinalLimited = L4_MABX_B.SFunction1_o1_ge;
21075 if (PositionFinalLimited < 256.0) {
21076 if (PositionFinalLimited >= 0.0) {
21077 starting_index = (uint8_T)PositionFinalLimited;
21078 } else {
21079 starting_index = 0U;
21080 }
21081 } else {
21082 starting_index = MAX_uint8_T;
21083 }
21084
21085 L4_MABX_B.DataTypeConversion_c4 = starting_index;
21086
21087 /* End of DataTypeConversion: '<S582>/Data Type Conversion' */
21088
21089 /* DataTypeConversion: '<S582>/Data Type Conversion1' */
21090 PositionFinalLimited = L4_MABX_B.SFunction1_o2_kk;
21091 if (PositionFinalLimited < 256.0) {
21092 if (PositionFinalLimited >= 0.0) {
21093 starting_index = (uint8_T)PositionFinalLimited;
21094 } else {
21095 starting_index = 0U;
21096 }
21097 } else {
21098 starting_index = MAX_uint8_T;
21099 }
21100
21101 L4_MABX_B.DataTypeConversion1_gn = starting_index;
21102
21103 /* End of DataTypeConversion: '<S582>/Data Type Conversion1' */
21104
21105 /* DataTypeConversion: '<S582>/Data Type Conversion2' */
21106 PositionFinalLimited = L4_MABX_B.SFunction1_o3_mg;
21107 if (PositionFinalLimited < 256.0) {
21108 if (PositionFinalLimited >= 0.0) {
21109 starting_index = (uint8_T)PositionFinalLimited;
21110 } else {
21111 starting_index = 0U;
21112 }
21113 } else {
21114 starting_index = MAX_uint8_T;
21115 }
21116
21117 L4_MABX_B.DataTypeConversion2_pl = starting_index;
21118
21119 /* End of DataTypeConversion: '<S582>/Data Type Conversion2' */
21120
21121 /* DataTypeConversion: '<S582>/Data Type Conversion3' */
21122 PositionFinalLimited = L4_MABX_B.SFunction1_o4_ea;
21123 if (PositionFinalLimited < 256.0) {
21124 if (PositionFinalLimited >= 0.0) {
21125 starting_index = (uint8_T)PositionFinalLimited;
21126 } else {
21127 starting_index = 0U;
21128 }
21129 } else {
21130 starting_index = MAX_uint8_T;
21131 }
21132
21133 L4_MABX_B.DataTypeConversion3_ic = starting_index;
21134
21135 /* End of DataTypeConversion: '<S582>/Data Type Conversion3' */
21136
21137 /* DataTypeConversion: '<S582>/Data Type Conversion4' */
21138 PositionFinalLimited = L4_MABX_B.SFunction1_o5_gx;
21139 if (PositionFinalLimited < 256.0) {
21140 if (PositionFinalLimited >= 0.0) {
21141 starting_index = (uint8_T)PositionFinalLimited;
21142 } else {
21143 starting_index = 0U;
21144 }
21145 } else {
21146 starting_index = MAX_uint8_T;
21147 }
21148
21149 L4_MABX_B.DataTypeConversion4_m = starting_index;
21150
21151 /* End of DataTypeConversion: '<S582>/Data Type Conversion4' */
21152
21153 /* DataTypeConversion: '<S582>/Data Type Conversion5' */
21154 PositionFinalLimited = L4_MABX_B.SFunction1_o6_a;
21155 if (PositionFinalLimited < 256.0) {
21156 if (PositionFinalLimited >= 0.0) {
21157 starting_index = (uint8_T)PositionFinalLimited;
21158 } else {
21159 starting_index = 0U;
21160 }
21161 } else {
21162 starting_index = MAX_uint8_T;
21163 }
21164
21165 L4_MABX_B.DataTypeConversion5_cj = starting_index;
21166
21167 /* End of DataTypeConversion: '<S582>/Data Type Conversion5' */
21168
21169 /* DataTypeConversion: '<S582>/Data Type Conversion6' */
21170 PositionFinalLimited = L4_MABX_B.SFunction1_o7_ht;
21171 if (PositionFinalLimited < 256.0) {
21172 if (PositionFinalLimited >= 0.0) {
21173 starting_index = (uint8_T)PositionFinalLimited;
21174 } else {
21175 starting_index = 0U;
21176 }
21177 } else {
21178 starting_index = MAX_uint8_T;
21179 }
21180
21181 L4_MABX_B.DataTypeConversion6_fn = starting_index;
21182
21183 /* End of DataTypeConversion: '<S582>/Data Type Conversion6' */
21184
21185 /* DataTypeConversion: '<S582>/Data Type Conversion7' */
21186 PositionFinalLimited = L4_MABX_B.SFunction1_o8_b0;
21187 if (PositionFinalLimited < 256.0) {
21188 if (PositionFinalLimited >= 0.0) {
21189 starting_index = (uint8_T)PositionFinalLimited;
21190 } else {
21191 starting_index = 0U;
21192 }
21193 } else {
21194 starting_index = MAX_uint8_T;
21195 }
21196
21197 L4_MABX_B.DataTypeConversion7_ep = starting_index;
21198
21199 /* End of DataTypeConversion: '<S582>/Data Type Conversion7' */
21200 L4_MABX_B.RawData_er[0] = L4_MABX_B.DataTypeConversion_c4;
21201 L4_MABX_B.RawData_er[1] = L4_MABX_B.DataTypeConversion1_gn;
21202 L4_MABX_B.RawData_er[2] = L4_MABX_B.DataTypeConversion2_pl;
21203 L4_MABX_B.RawData_er[3] = L4_MABX_B.DataTypeConversion3_ic;
21204 L4_MABX_B.RawData_er[4] = L4_MABX_B.DataTypeConversion4_m;
21205 L4_MABX_B.RawData_er[5] = L4_MABX_B.DataTypeConversion5_cj;
21206 L4_MABX_B.RawData_er[6] = L4_MABX_B.DataTypeConversion6_fn;
21207 L4_MABX_B.RawData_er[7] = L4_MABX_B.DataTypeConversion7_ep;
21208 break;
21209
21210 case ENUM_CAN_RX_T_RX_CAN_3:
21211 L4_MABX_B.RawData_er[0] = L4_MABX_B.DataTypeConversion_fm;
21212 L4_MABX_B.RawData_er[1] = L4_MABX_B.DataTypeConversion1_ow;
21213 L4_MABX_B.RawData_er[2] = L4_MABX_B.DataTypeConversion2_mo;
21214 L4_MABX_B.RawData_er[3] = L4_MABX_B.DataTypeConversion3_hf;
21215 L4_MABX_B.RawData_er[4] = L4_MABX_B.DataTypeConversion4_f1;
21216 L4_MABX_B.RawData_er[5] = L4_MABX_B.DataTypeConversion5_ee;
21217 L4_MABX_B.RawData_er[6] = L4_MABX_B.DataTypeConversion6_dt;
21218 L4_MABX_B.RawData_er[7] = L4_MABX_B.DataTypeConversion7_p5;
21219 break;
21220
21221 case ENUM_CAN_RX_T_RX_CAN_4:
21222 L4_MABX_B.RawData_er[0] = L4_MABX_B.DataTypeConversion_fm;
21223 L4_MABX_B.RawData_er[1] = L4_MABX_B.DataTypeConversion1_ow;
21224 L4_MABX_B.RawData_er[2] = L4_MABX_B.DataTypeConversion2_mo;
21225 L4_MABX_B.RawData_er[3] = L4_MABX_B.DataTypeConversion3_hf;
21226 L4_MABX_B.RawData_er[4] = L4_MABX_B.DataTypeConversion4_f1;
21227 L4_MABX_B.RawData_er[5] = L4_MABX_B.DataTypeConversion5_ee;
21228 L4_MABX_B.RawData_er[6] = L4_MABX_B.DataTypeConversion6_dt;
21229 L4_MABX_B.RawData_er[7] = L4_MABX_B.DataTypeConversion7_p5;
21230 break;
21231
21232 case ENUM_CAN_RX_T_RX_CAN_5:
21233 L4_MABX_B.RawData_er[0] = L4_MABX_B.DataTypeConversion_fm;
21234 L4_MABX_B.RawData_er[1] = L4_MABX_B.DataTypeConversion1_ow;
21235 L4_MABX_B.RawData_er[2] = L4_MABX_B.DataTypeConversion2_mo;
21236 L4_MABX_B.RawData_er[3] = L4_MABX_B.DataTypeConversion3_hf;
21237 L4_MABX_B.RawData_er[4] = L4_MABX_B.DataTypeConversion4_f1;
21238 L4_MABX_B.RawData_er[5] = L4_MABX_B.DataTypeConversion5_ee;
21239 L4_MABX_B.RawData_er[6] = L4_MABX_B.DataTypeConversion6_dt;
21240 L4_MABX_B.RawData_er[7] = L4_MABX_B.DataTypeConversion7_p5;
21241 break;
21242
21243 case ENUM_CAN_RX_T_RX_CAN_6:
21244 L4_MABX_B.RawData_er[0] = L4_MABX_B.DataTypeConversion_fm;
21245 L4_MABX_B.RawData_er[1] = L4_MABX_B.DataTypeConversion1_ow;
21246 L4_MABX_B.RawData_er[2] = L4_MABX_B.DataTypeConversion2_mo;
21247 L4_MABX_B.RawData_er[3] = L4_MABX_B.DataTypeConversion3_hf;
21248 L4_MABX_B.RawData_er[4] = L4_MABX_B.DataTypeConversion4_f1;
21249 L4_MABX_B.RawData_er[5] = L4_MABX_B.DataTypeConversion5_ee;
21250 L4_MABX_B.RawData_er[6] = L4_MABX_B.DataTypeConversion6_dt;
21251 L4_MABX_B.RawData_er[7] = L4_MABX_B.DataTypeConversion7_p5;
21252 break;
21253
21254 default:
21255 L4_MABX_B.RawData_er[0] = L4_MABX_B.DataTypeConversion_fm;
21256 L4_MABX_B.RawData_er[1] = L4_MABX_B.DataTypeConversion1_ow;
21257 L4_MABX_B.RawData_er[2] = L4_MABX_B.DataTypeConversion2_mo;
21258 L4_MABX_B.RawData_er[3] = L4_MABX_B.DataTypeConversion3_hf;
21259 L4_MABX_B.RawData_er[4] = L4_MABX_B.DataTypeConversion4_f1;
21260 L4_MABX_B.RawData_er[5] = L4_MABX_B.DataTypeConversion5_ee;
21261 L4_MABX_B.RawData_er[6] = L4_MABX_B.DataTypeConversion6_dt;
21262 L4_MABX_B.RawData_er[7] = L4_MABX_B.DataTypeConversion7_p5;
21263 break;
21264 }
21265
21266 /* S-Function (sfix_bitop): '<S670>/Operator' */
21267 L4_MABX_B.Operator_d30 = (uint8_T)(L4_MABX_B.RawData_er[0] &
21268 L4_MABX_P.Operator_BitMask_ml);
21269
21270 /* DataTypeConversion: '<S670>/DataType' */
21271 L4_MABX_B.DataType_pd = L4_MABX_B.Operator_d30;
21272
21273 /* ArithShift: '<S663>/Shift_Arithmetic ' */
21274 L4_MABX_B.Shift_Arithmetic_e = (uint8_T)((uint32_T)L4_MABX_B.DataType_pd >> 1);
21275
21276 /* DataTypeConversion: '<S663>/Data Type Conversion' */
21277 L4_MABX_B.PropB_REAX_4_PositionIndexValid = (L4_MABX_B.Shift_Arithmetic_e != 0);
21278
21279 /* DataTypeConversion: '<S406>/Data Type Conversion' */
21280 L4_MABX_B.DataTypeConversion_h5 = L4_MABX_B.PropB_REAX_4_PositionIndexValid;
21281
21282 /* S-Function (sfix_bitop): '<S669>/Operator' */
21283 L4_MABX_B.Operator_nz = (uint8_T)(L4_MABX_B.RawData_er[0] &
21284 L4_MABX_P.Operator_BitMask_dv);
21285
21286 /* DataTypeConversion: '<S669>/DataType' */
21287 L4_MABX_B.DataType_do = (L4_MABX_B.Operator_nz != 0);
21288
21289 /* DataTypeConversion: '<S406>/Data Type Conversion1' */
21290 L4_MABX_B.DataTypeConversion1_bh = L4_MABX_B.DataType_do;
21291
21292 /* S-Function (sfix_bitop): '<S671>/Operator' */
21293 L4_MABX_B.Operator_nr = (uint8_T)(L4_MABX_B.RawData_er[0] &
21294 L4_MABX_P.Operator_BitMask_on);
21295
21296 /* DataTypeConversion: '<S671>/DataType' */
21297 L4_MABX_B.DataType_nx5 = L4_MABX_B.Operator_nr;
21298
21299 /* ArithShift: '<S663>/Shift_Arithmetic 1' */
21300 L4_MABX_B.Shift_Arithmetic1_em = (uint8_T)((uint32_T)L4_MABX_B.DataType_nx5 >>
21301 2);
21302
21303 /* DataTypeConversion: '<S663>/Data Type Conversion1' */
21304 L4_MABX_B.PropB_REAX_4_DriverControlledEf = (L4_MABX_B.Shift_Arithmetic1_em !=
21305 0);
21306
21307 /* DataTypeConversion: '<S406>/Data Type Conversion2' */
21308 L4_MABX_B.DataTypeConversion2_gt = L4_MABX_B.PropB_REAX_4_DriverControlledEf;
21309
21310 /* SignalConversion: '<S664>/SignalConversion' */
21311 L4_MABX_B.PropB_REAX_4_ControlOperatingMo = L4_MABX_B.RawData_er[1];
21312
21313 /* DataTypeConversion: '<S406>/Data Type Conversion3' */
21314 L4_MABX_B.DataTypeConversion3_b = L4_MABX_B.PropB_REAX_4_ControlOperatingMo;
21315
21316 /* SignalConversion: '<S665>/SignalConversion' */
21317 L4_MABX_B.PropB_REAX_4_SystemMode = L4_MABX_B.RawData_er[2];
21318
21319 /* DataTypeConversion: '<S406>/Data Type Conversion4' */
21320 L4_MABX_B.DataTypeConversion4_ke = L4_MABX_B.PropB_REAX_4_SystemMode;
21321
21322 /* DataTypeConversion: '<S666>/Data Type Conversion4' */
21323 L4_MABX_B.DataTypeConversion4_bx = (int8_T)L4_MABX_B.RawData_er[4];
21324
21325 /* DataTypeConversion: '<S666>/Data Type Conversion5' */
21326 L4_MABX_B.PropB_REAX_4_PercHandwheelTorqu = L4_MABX_B.DataTypeConversion4_bx;
21327
21328 /* DataTypeConversion: '<S406>/Data Type Conversion5' */
21329 L4_MABX_B.DataTypeConversion5_k = L4_MABX_B.PropB_REAX_4_PercHandwheelTorqu;
21330
21331 /* DataTypeConversion: '<S667>/Data Type Conversion6' */
21332 L4_MABX_B.DataTypeConversion6_cn = L4_MABX_B.RawData_er[5];
21333
21334 /* DataTypeConversion: '<S667>/Data Type Conversion7' */
21335 L4_MABX_B.DataTypeConversion7_hx = L4_MABX_B.RawData_er[6];
21336
21337 /* ArithShift: '<S667>/Shift_Arithmetic 2' */
21338 L4_MABX_B.Shift_Arithmetic2_m4 = (uint16_T)(L4_MABX_B.DataTypeConversion7_hx <<
21339 8);
21340
21341 /* S-Function (sfix_bitop): '<S672>/Operator' */
21342 L4_MABX_B.Operator_oj = (uint16_T)(L4_MABX_B.DataTypeConversion6_cn |
21343 L4_MABX_B.Shift_Arithmetic2_m4);
21344
21345 /* DataTypeConversion: '<S672>/DataType' */
21346 L4_MABX_B.DataType_k1 = L4_MABX_B.Operator_oj;
21347
21348 /* DataTypeConversion: '<S667>/Data Type Conversion8' */
21349 L4_MABX_B.DataTypeConversion8_i = (int16_T)L4_MABX_B.DataType_k1;
21350
21351 /* DataTypeConversion: '<S667>/Data Type Conversion9' */
21352 L4_MABX_B.PropB_REAX_4_AbsSteeringAngle = L4_MABX_B.DataTypeConversion8_i;
21353
21354 /* DataTypeConversion: '<S406>/Data Type Conversion6' */
21355 L4_MABX_B.DataTypeConversion6_c = L4_MABX_B.PropB_REAX_4_AbsSteeringAngle;
21356
21357 /* DataTypeConversion: '<S668>/Data Type Conversion10' */
21358 L4_MABX_B.DataTypeConversion10_a = (int8_T)L4_MABX_B.RawData_er[7];
21359
21360 /* DataTypeConversion: '<S668>/Data Type Conversion11' */
21361 L4_MABX_B.PropB_REAX_4_PercMotorTorque = L4_MABX_B.DataTypeConversion10_a;
21362
21363 /* DataTypeConversion: '<S406>/Data Type Conversion7' */
21364 L4_MABX_B.DataTypeConversion7_g = L4_MABX_B.PropB_REAX_4_PercMotorTorque;
21365
21366 /* DataTypeConversion: '<S583>/Data Type Conversion8' */
21367 L4_MABX_B.RX_status_cn = (L4_MABX_B.SFunction1_o9_a != 0.0);
21368
21369 /* MultiPortSwitch: '<S431>/Multiport_Switch' incorporates:
21370 * Constant: '<S431>/Constant'
21371 */
21372 switch (PROPB_REAX_CHANNEL_APV) {
21373 case ENUM_CAN_RX_T_RX_CAN_1:
21374 /* DataTypeConversion: '<S581>/Data Type Conversion8' */
21375 L4_MABX_B.RX_status_nr = (L4_MABX_B.SFunction1_o9_me != 0.0);
21376 L4_MABX_B.RX_status_jp = L4_MABX_B.RX_status_nr;
21377 break;
21378
21379 case ENUM_CAN_RX_T_RX_CAN_2:
21380 /* DataTypeConversion: '<S582>/Data Type Conversion8' */
21381 L4_MABX_B.RX_status_pp = (L4_MABX_B.SFunction1_o9_mt != 0.0);
21382 L4_MABX_B.RX_status_jp = L4_MABX_B.RX_status_pp;
21383 break;
21384
21385 case ENUM_CAN_RX_T_RX_CAN_3:
21386 L4_MABX_B.RX_status_jp = L4_MABX_B.RX_status_cn;
21387 break;
21388
21389 case ENUM_CAN_RX_T_RX_CAN_4:
21390 L4_MABX_B.RX_status_jp = L4_MABX_B.RX_status_cn;
21391 break;
21392
21393 case ENUM_CAN_RX_T_RX_CAN_5:
21394 L4_MABX_B.RX_status_jp = L4_MABX_B.RX_status_cn;
21395 break;
21396
21397 case ENUM_CAN_RX_T_RX_CAN_6:
21398 L4_MABX_B.RX_status_jp = L4_MABX_B.RX_status_cn;
21399 break;
21400
21401 default:
21402 L4_MABX_B.RX_status_jp = L4_MABX_B.RX_status_cn;
21403 break;
21404 }
21405
21406 /* DataTypeConversion: '<S583>/Data Type Conversion9' */
21407 L4_MABX_B.RX_time_hx = L4_MABX_B.SFunction1_o10_n;
21408
21409 /* MultiPortSwitch: '<S431>/Multiport_Switch' incorporates:
21410 * Constant: '<S431>/Constant'
21411 */
21412 switch (PROPB_REAX_CHANNEL_APV) {
21413 case ENUM_CAN_RX_T_RX_CAN_1:
21414 /* DataTypeConversion: '<S581>/Data Type Conversion9' */
21415 L4_MABX_B.RX_time_kd = L4_MABX_B.SFunction1_o10_j;
21416 L4_MABX_B.RX_time_dm = L4_MABX_B.RX_time_kd;
21417 break;
21418
21419 case ENUM_CAN_RX_T_RX_CAN_2:
21420 /* DataTypeConversion: '<S582>/Data Type Conversion9' */
21421 L4_MABX_B.RX_time_pa = L4_MABX_B.SFunction1_o10_c;
21422 L4_MABX_B.RX_time_dm = L4_MABX_B.RX_time_pa;
21423 break;
21424
21425 case ENUM_CAN_RX_T_RX_CAN_3:
21426 L4_MABX_B.RX_time_dm = L4_MABX_B.RX_time_hx;
21427 break;
21428
21429 case ENUM_CAN_RX_T_RX_CAN_4:
21430 L4_MABX_B.RX_time_dm = L4_MABX_B.RX_time_hx;
21431 break;
21432
21433 case ENUM_CAN_RX_T_RX_CAN_5:
21434 L4_MABX_B.RX_time_dm = L4_MABX_B.RX_time_hx;
21435 break;
21436
21437 case ENUM_CAN_RX_T_RX_CAN_6:
21438 L4_MABX_B.RX_time_dm = L4_MABX_B.RX_time_hx;
21439 break;
21440
21441 default:
21442 L4_MABX_B.RX_time_dm = L4_MABX_B.RX_time_hx;
21443 break;
21444 }
21445
21446 /* DataTypeConversion: '<S583>/Data Type Conversion10' */
21447 L4_MABX_B.RX_delta_time_fw = L4_MABX_B.SFunction1_o11_n;
21448
21449 /* MultiPortSwitch: '<S431>/Multiport_Switch' incorporates:
21450 * Constant: '<S431>/Constant'
21451 */
21452 switch (PROPB_REAX_CHANNEL_APV) {
21453 case ENUM_CAN_RX_T_RX_CAN_1:
21454 /* DataTypeConversion: '<S581>/Data Type Conversion10' */
21455 L4_MABX_B.RX_delta_time_p1 = L4_MABX_B.SFunction1_o11_b;
21456 L4_MABX_B.RX_delta_time_ayk = L4_MABX_B.RX_delta_time_p1;
21457 break;
21458
21459 case ENUM_CAN_RX_T_RX_CAN_2:
21460 /* DataTypeConversion: '<S582>/Data Type Conversion10' */
21461 L4_MABX_B.RX_delta_time_e = L4_MABX_B.SFunction1_o11_i;
21462 L4_MABX_B.RX_delta_time_ayk = L4_MABX_B.RX_delta_time_e;
21463 break;
21464
21465 case ENUM_CAN_RX_T_RX_CAN_3:
21466 L4_MABX_B.RX_delta_time_ayk = L4_MABX_B.RX_delta_time_fw;
21467 break;
21468
21469 case ENUM_CAN_RX_T_RX_CAN_4:
21470 L4_MABX_B.RX_delta_time_ayk = L4_MABX_B.RX_delta_time_fw;
21471 break;
21472
21473 case ENUM_CAN_RX_T_RX_CAN_5:
21474 L4_MABX_B.RX_delta_time_ayk = L4_MABX_B.RX_delta_time_fw;
21475 break;
21476
21477 case ENUM_CAN_RX_T_RX_CAN_6:
21478 L4_MABX_B.RX_delta_time_ayk = L4_MABX_B.RX_delta_time_fw;
21479 break;
21480
21481 default:
21482 L4_MABX_B.RX_delta_time_ayk = L4_MABX_B.RX_delta_time_fw;
21483 break;
21484 }
21485
21486 /* RelationalOperator: '<S590>/Operator' incorporates:
21487 * Constant: '<S431>/Constant'
21488 * Constant: '<S584>/Constant2'
21489 */
21490 L4_MABX_B.Operator_ls = (PROPB_REAX_CHANNEL_APV ==
21491 L4_MABX_P.Constant2_Value_nt);
21492
21493 /* RelationalOperator: '<S591>/Operator' incorporates:
21494 * Constant: '<S431>/Constant'
21495 * Constant: '<S584>/Constant3'
21496 */
21497 L4_MABX_B.Operator_cl = (PROPB_REAX_CHANNEL_APV ==
21498 L4_MABX_P.Constant3_Value_g5);
21499
21500 /* RelationalOperator: '<S592>/Operator' incorporates:
21501 * Constant: '<S431>/Constant'
21502 * Constant: '<S584>/Constant4'
21503 */
21504 L4_MABX_B.Operator_a4 = (PROPB_REAX_CHANNEL_APV == L4_MABX_P.Constant4_Value_g);
21505
21506 /* S-Function (rti_commonblock): '<S446>/S-Function1' */
21507 /* This comment workarounds a code generation problem */
21508
21509 /* S-Function (rti_commonblock): '<S447>/S-Function1' */
21510 /* This comment workarounds a code generation problem */
21511
21512 /* S-Function (rti_commonblock): '<S448>/S-Function1' */
21513 /* This comment workarounds a code generation problem */
21514
21515 /* S-Function (rti_commonblock): '<S449>/S-Function1' */
21516 /* This comment workarounds a code generation problem */
21517
21518 /* S-Function (rti_commonblock): '<S450>/S-Function1' */
21519 /* This comment workarounds a code generation problem */
21520
21521 /* S-Function (rti_commonblock): '<S451>/S-Function1' */
21522 /* This comment workarounds a code generation problem */
21523
21524 /* S-Function (rti_commonblock): '<S721>/S-Function1' */
21525 /* This comment workarounds a code generation problem */
21526
21527 /* DataTypeConversion: '<S402>/StartPBActive' */
21528 L4_MABX_B.StartPBActive = L4_MABX_B.SFunction1_j;
21529
21530 /* Logic: '<S402>/Logical Operator' */
21531 EngagePB = !L4_MABX_B.StartPBActive;
21532
21533 /* Assertion: '<S749>/Assertion' */
21534 utAssert(L4_MABX_B.conjunction_c);
21535
21536 /* Assertion: '<S757>/Assertion' */
21537 utAssert(L4_MABX_B.conjunction);
21538
21539 /* Assertion: '<S765>/Assertion' */
21540 utAssert(L4_MABX_B.conjunction_d);
21541
21542 /* Assertion: '<S773>/Assertion' */
21543 utAssert(L4_MABX_B.conjunction_cj);
21544
21545 /* Assertion: '<S781>/Assertion' */
21546 utAssert(L4_MABX_B.conjunction_b);
21547
21548 /* RelationalOperator: '<S748>/Relational Operator9' incorporates:
21549 * Constant: '<S729>/PWMSynchFaultLimMin'
21550 */
21551 L4_MABX_B.F_Fault_Soft_km = (L4_MABX_B.If_Then_Else_h.Switch !=
21552 L4_MABX_P.PWMSynchFaultLimMin_Value);
21553
21554 /* Gain: '<S402>/ShifterControlFreq' */
21555 L4_MABX_B.ShiftControlFreq = L4_MABX_P.ShifterControlFreq_Gain *
21556 L4_MABX_B.SFunction1_o1_o;
21557
21558 /* S-Function (rti_commonblock): '<S716>/S-Function1' */
21559 /* This comment workarounds a code generation problem */
21560 {
21561 /* dSPACE I/O Board DS1401STDADCT4 #1 Unit:ADC Group:ADC */
21562 adc_tp4_single_new_read(ADC_TP4_1_MODULE_ADDR,
21563 ADC_TP4_CH2,
21564 (dsfloat *)&L4_MABX_B.SFunction1_g);
21565 }
21566
21567 /* Gain: '<S402>/ShifterControlDC2' */
21568 L4_MABX_B.ShifterControlDC2 = L4_MABX_P.ShifterControlDC2_Gain *
21569 L4_MABX_B.SFunction1_g;
21570
21571 /* S-Function (rti_commonblock): '<S717>/S-Function1' */
21572 /* This comment workarounds a code generation problem */
21573 {
21574 /* dSPACE I/O Board DS1401STDADCT4 #1 Unit:ADC Group:ADC */
21575 adc_tp4_single_new_read(ADC_TP4_1_MODULE_ADDR,
21576 ADC_TP4_CH1,
21577 (dsfloat *)&L4_MABX_B.SFunction1_d);
21578 }
21579
21580 /* Gain: '<S402>/ShifterControlDC1' */
21581 L4_MABX_B.ShifterControlDC1 = L4_MABX_P.ShifterControlDC1_Gain *
21582 L4_MABX_B.SFunction1_d;
21583
21584 /* S-Function (rti_commonblock): '<S8>/S-Function1' */
21585 /* This comment workarounds a code generation problem */
21586
21587 /* S-Function (rti_commonblock): '<S9>/S-Function1' */
21588 /* This comment workarounds a code generation problem */
21589
21590 /* UnitDelay: '<S10>/Unit_Delay' */
21591 L4_MABX_B.Unit_Delay_jj = L4_MABX_DW.Unit_Delay_DSTATE_do;
21592
21593 /* Outputs for Enabled SubSystem: '<S10>/EnabledSubsystem' incorporates:
21594 * EnablePort: '<S1057>/Enable'
21595 */
21596 if (L4_MABX_B.Unit_Delay_jj) {
21597 /* Constant: '<S1057>/Constant' */
21598 memcpy(&GLB_SWVERSION_CPV_[0], &L4_MABX_P.GLB_SWVERSION_CPV[0], 100U *
21599 sizeof(uint8_T));
21600 }
21601
21602 /* End of Outputs for SubSystem: '<S10>/EnabledSubsystem' */
21603 /* user code (Output function Trailer for TID0) */
21604
21605 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
21606 /* EventChannel: 0 */
21607 if (tid == 0) {
21608 DSXCP_service(0);
21609 }
21610
21611 /* If subsystem generates rate grouping Output functions,
21612 * when tid is used in Output function for one rate,
21613 * all Output functions include tid as a local variable.
21614 * As result, some Output functions may have unused tid.
21615 */
21616 UNUSED_PARAMETER(tid);
21617}
21618
21619/* Model update function for TID0 */
21620void L4_MABX_update0(void) /* Sample time: [0.01s, 0.0s] */
21621{
21622 real_T denAccum;
21623 int32_T i;
21624
21625 /* Update for UnitDelay: '<S762>/FixPt Unit Delay2' incorporates:
21626 * Constant: '<S762>/FixPt Constant'
21627 */
21628 L4_MABX_DW.FixPtUnitDelay2_DSTATE = L4_MABX_P.FixPtConstant_Value_fx;
21629
21630 /* Update for UnitDelay: '<S762>/FixPt Unit Delay1' */
21631 L4_MABX_DW.FixPtUnitDelay1_DSTATE = L4_MABX_B.If_Then_Else_g.Switch;
21632
21633 /* Update for UnitDelay: '<S754>/FixPt Unit Delay2' incorporates:
21634 * Constant: '<S754>/FixPt Constant'
21635 */
21636 L4_MABX_DW.FixPtUnitDelay2_DSTATE_n = L4_MABX_P.FixPtConstant_Value_o;
21637
21638 /* Update for UnitDelay: '<S754>/FixPt Unit Delay1' */
21639 L4_MABX_DW.FixPtUnitDelay1_DSTATE_j = L4_MABX_B.If_Then_Else_c.Switch;
21640
21641 /* Update for UnitDelay: '<S778>/FixPt Unit Delay2' incorporates:
21642 * Constant: '<S778>/FixPt Constant'
21643 */
21644 L4_MABX_DW.FixPtUnitDelay2_DSTATE_f = L4_MABX_P.FixPtConstant_Value_ap;
21645
21646 /* Update for UnitDelay: '<S778>/FixPt Unit Delay1' */
21647 L4_MABX_DW.FixPtUnitDelay1_DSTATE_m = L4_MABX_B.If_Then_Else_d.Switch;
21648
21649 /* Update for UnitDelay: '<S770>/FixPt Unit Delay2' incorporates:
21650 * Constant: '<S770>/FixPt Constant'
21651 */
21652 L4_MABX_DW.FixPtUnitDelay2_DSTATE_e = L4_MABX_P.FixPtConstant_Value_m;
21653
21654 /* Update for UnitDelay: '<S770>/FixPt Unit Delay1' */
21655 L4_MABX_DW.FixPtUnitDelay1_DSTATE_mk = L4_MABX_B.If_Then_Else_k.Switch;
21656
21657 /* Update for UnitDelay: '<S732>/Unit_Delay' incorporates:
21658 * Constant: '<S732>/Constant'
21659 */
21660 L4_MABX_DW.Unit_Delay_DSTATE_ot = L4_MABX_P.Constant_Value_ec;
21661
21662 /* Update for UnitDelay: '<S799>/Unit_Delay1' incorporates:
21663 * Constant: '<S799>/Constant'
21664 */
21665 L4_MABX_DW.Unit_Delay1_DSTATE = L4_MABX_P.Constant_Value_kw;
21666
21667 /* Update for UnitDelay: '<S799>/Unit_Delay2' */
21668 L4_MABX_DW.Unit_Delay2_DSTATE = L4_MABX_B.If_Then_Else_e.Switch;
21669
21670 /* Update for UnitDelay: '<S732>/Unit_Delay1' incorporates:
21671 * Constant: '<S732>/Constant1'
21672 */
21673 L4_MABX_DW.Unit_Delay1_DSTATE_n = L4_MABX_P.Constant1_Value_j5;
21674
21675 /* Update for UnitDelay: '<S800>/Unit_Delay1' incorporates:
21676 * Constant: '<S800>/Constant'
21677 */
21678 L4_MABX_DW.Unit_Delay1_DSTATE_m = L4_MABX_P.Constant_Value_ey;
21679
21680 /* Update for UnitDelay: '<S800>/Unit_Delay2' */
21681 L4_MABX_DW.Unit_Delay2_DSTATE_f = L4_MABX_B.If_Then_Else_gx.Switch;
21682
21683 /* Update for UnitDelay: '<S798>/FixPt Unit Delay2' incorporates:
21684 * Constant: '<S798>/FixPt Constant'
21685 */
21686 L4_MABX_DW.FixPtUnitDelay2_DSTATE_h = L4_MABX_P.FixPtConstant_Value_nu;
21687
21688 /* Update for UnitDelay: '<S798>/FixPt Unit Delay1' */
21689 L4_MABX_DW.FixPtUnitDelay1_DSTATE_d = L4_MABX_B.If_Then_Else3_f.Switch;
21690
21691 /* Update for UnitDelay: '<S797>/FixPt Unit Delay2' incorporates:
21692 * Constant: '<S797>/FixPt Constant'
21693 */
21694 L4_MABX_DW.FixPtUnitDelay2_DSTATE_i = L4_MABX_P.FixPtConstant_Value_e1;
21695
21696 /* Update for UnitDelay: '<S797>/FixPt Unit Delay1' */
21697 L4_MABX_DW.FixPtUnitDelay1_DSTATE_a = L4_MABX_B.If_Then_Else1_d.Switch;
21698
21699 /* Update for UnitDelay: '<S786>/FixPt Unit Delay2' incorporates:
21700 * Constant: '<S786>/FixPt Constant'
21701 */
21702 L4_MABX_DW.FixPtUnitDelay2_DSTATE_l = L4_MABX_P.FixPtConstant_Value_c;
21703
21704 /* Update for UnitDelay: '<S786>/FixPt Unit Delay1' */
21705 L4_MABX_DW.FixPtUnitDelay1_DSTATE_e = L4_MABX_B.If_Then_Else_h.Switch;
21706
21707 /* Update for Enabled SubSystem: '<S726>/Slew_at_event' incorporates:
21708 * EnablePort: '<S733>/Enable'
21709 */
21710 if (L4_MABX_DW.Slew_at_event_MODE) {
21711 /* Update for UnitDelay: '<S804>/Unit_Delay' */
21712 L4_MABX_DW.Unit_Delay_DSTATE_il = L4_MABX_B.LogicalOperator6_b;
21713
21714 /* Update for UnitDelay: '<S805>/Unit_Delay' incorporates:
21715 * Constant: '<S805>/Constant'
21716 */
21717 L4_MABX_DW.Unit_Delay_DSTATE_n = L4_MABX_P.Constant_Value_e2;
21718
21719 /* Update for UnitDelay: '<S808>/FixPt Unit Delay2' incorporates:
21720 * Constant: '<S808>/FixPt Constant'
21721 */
21722 L4_MABX_DW.FixPtUnitDelay2_DSTATE_ne = L4_MABX_P.FixPtConstant_Value_h;
21723
21724 /* Update for UnitDelay: '<S808>/FixPt Unit Delay1' */
21725 L4_MABX_DW.FixPtUnitDelay1_DSTATE_b = L4_MABX_B.If_Then_Else_jx.Switch;
21726
21727 /* Update for UnitDelay: '<S803>/Unit_Delay' */
21728 L4_MABX_DW.Unit_Delay_DSTATE_cf = L4_MABX_B.LogicalOperator_ny;
21729 }
21730
21731 /* End of Update for SubSystem: '<S726>/Slew_at_event' */
21732
21733 /* Update for Enabled SubSystem: '<S422>/CAN_RX_EC1_00' incorporates:
21734 * EnablePort: '<S506>/Enable'
21735 */
21736 if (L4_MABX_B.LogicalOperator_k) {
21737 /* Update for UnitDelay: '<S506>/Unit Delay' */
21738 for (i = 0; i < 39; i++) {
21739 L4_MABX_DW.UnitDelay_DSTATE_ir[i] = L4_MABX_B.Data_k[i];
21740 }
21741
21742 /* End of Update for UnitDelay: '<S506>/Unit Delay' */
21743
21744 /* Update for Enabled SubSystem: '<S506>/Decode' incorporates:
21745 * EnablePort: '<S509>/Enable'
21746 */
21747 if (L4_MABX_B.RX_status_gx) {
21748 /* Update for UnitDelay: '<S509>/Unit_Delay' */
21749 L4_MABX_DW.Unit_Delay_DSTATE_g = L4_MABX_B.timeStamp_d;
21750 }
21751
21752 /* End of Update for SubSystem: '<S506>/Decode' */
21753 }
21754
21755 /* End of Update for SubSystem: '<S422>/CAN_RX_EC1_00' */
21756
21757 /* Update for UnitDelay: '<S635>/Unit_Delay3' */
21758 L4_MABX_DW.Unit_Delay3_DSTATE = L4_MABX_B.LogicalOperator2_j;
21759
21760 /* Update for Enabled SubSystem: '<S445>/CAN_RX_VI_00' incorporates:
21761 * EnablePort: '<S634>/Enable'
21762 */
21763 if (L4_MABX_B.LogicalOperator_n) {
21764 /* Update for UnitDelay: '<S634>/Unit Delay' */
21765 for (i = 0; i < 17; i++) {
21766 L4_MABX_DW.UnitDelay_DSTATE_g[i] = L4_MABX_B.Data[i];
21767 }
21768
21769 /* End of Update for UnitDelay: '<S634>/Unit Delay' */
21770
21771 /* Update for Enabled SubSystem: '<S634>/Decode' incorporates:
21772 * EnablePort: '<S637>/Enable'
21773 */
21774 if (L4_MABX_B.RX_status_lz) {
21775 /* Update for UnitDelay: '<S637>/Unit_Delay' */
21776 L4_MABX_DW.Unit_Delay_DSTATE_p = L4_MABX_B.timeStamp;
21777 }
21778
21779 /* End of Update for SubSystem: '<S634>/Decode' */
21780 }
21781
21782 /* End of Update for SubSystem: '<S445>/CAN_RX_VI_00' */
21783
21784 /* Update for UnitDelay: '<S635>/Unit_Delay' incorporates:
21785 * Constant: '<S635>/Constant'
21786 */
21787 L4_MABX_DW.Unit_Delay_DSTATE_bo = L4_MABX_P.Constant_Value_a0b;
21788
21789 /* Update for UnitDelay: '<S641>/Unit_Delay' */
21790 L4_MABX_DW.Unit_Delay_DSTATE_cv = L4_MABX_B.LogicalOperator1_j;
21791
21792 /* Update for UnitDelay: '<S3>/Unit_Delay' */
21793 L4_MABX_DW.Unit_Delay_79_DSTATE = EStop;
21794 L4_MABX_DW.Unit_Delay_80_DSTATE = EnableSw;
21795 L4_MABX_DW.Unit_Delay_81_DSTATE = EngagePB;
21796 L4_MABX_DW.Unit_Delay_45_DSTATE = AutonomousEnabled;
21797 L4_MABX_DW.Unit_Delay_47_DSTATE = MABX_Mode;
21798
21799 /* Update for UnitDelay: '<S391>/Delay Input1' */
21800 L4_MABX_DW.DelayInput1_DSTATE_p = L4_MABX_B.Compare_a;
21801
21802 /* Update for UnitDelay: '<S389>/Unit Delay' */
21803 L4_MABX_DW.UnitDelay_DSTATE = L4_MABX_B.Count;
21804
21805 /* Update for Atomic SubSystem: '<S65>/Task_10ms' */
21806 /* Update for Enabled SubSystem: '<S79>/Throttle_controller_gov' incorporates:
21807 * EnablePort: '<S206>/Enable'
21808 */
21809 if (L4_MABX_DW.Throttle_controller_gov_MODE) {
21810 /* Update for UnitDelay: '<S214>/Unit_Delay1' incorporates:
21811 * Constant: '<S214>/Constant3'
21812 */
21813 L4_MABX_DW.Unit_Delay1_DSTATE_p1 = L4_MABX_P.Constant3_Value_lp;
21814
21815 /* Update for UnitDelay: '<S214>/Unit_Delay' */
21816 L4_MABX_DW.Unit_Delay_DSTATE_lq = L4_MABX_B.RelationalOperator_fl;
21817
21818 /* Update for UnitDelay: '<S241>/Unit_Delay' incorporates:
21819 * Constant: '<S241>/Constant'
21820 */
21821 L4_MABX_DW.Unit_Delay_DSTATE_be = L4_MABX_P.Constant_Value_ck;
21822
21823 /* Update for UnitDelay: '<S261>/Unit_Delay1' incorporates:
21824 * Constant: '<S261>/Constant'
21825 */
21826 L4_MABX_DW.Unit_Delay1_DSTATE_h = L4_MABX_P.Constant_Value_ot;
21827
21828 /* Update for UnitDelay: '<S262>/Unit_Delay' incorporates:
21829 * Constant: '<S262>/Constant'
21830 */
21831 L4_MABX_DW.Unit_Delay_DSTATE_fi = L4_MABX_P.Constant_Value_h0;
21832
21833 /* Update for UnitDelay: '<S266>/FixPt Unit Delay2' incorporates:
21834 * Constant: '<S266>/FixPt Constant'
21835 */
21836 L4_MABX_DW.FixPtUnitDelay2_DSTATE_gq = L4_MABX_P.FixPtConstant_Value_jk;
21837
21838 /* Update for UnitDelay: '<S266>/FixPt Unit Delay1' */
21839 L4_MABX_DW.FixPtUnitDelay1_DSTATE_a0 = L4_MABX_B.If_Then_Else_cp.Switch;
21840
21841 /* Update for UnitDelay: '<S261>/Unit_Delay2' */
21842 L4_MABX_DW.Unit_Delay2_DSTATE_m = L4_MABX_B.If_Then_Else_k2.Switch;
21843
21844 /* Update for Enabled SubSystem: '<S238>/Calculate_D_term' */
21845 L4__Calculate_D_term_Update(&L4_MABX_B.Calculate_D_term_h,
21846 &L4_MABX_DW.Calculate_D_term_h, &L4_MABX_P.Calculate_D_term_h);
21847
21848 /* End of Update for SubSystem: '<S238>/Calculate_D_term' */
21849
21850 /* Update for UnitDelay: '<S216>/Unit_Delay' */
21851 L4_MABX_DW.Unit_Delay_DSTATE_fz = L4_MABX_B.Add_ds;
21852
21853 /* Update for Enabled SubSystem: '<S238>/Calculate_I_term' */
21854 L4__Calculate_I_term_Update(&L4_MABX_B.Calculate_I_term_n,
21855 &L4_MABX_DW.Calculate_I_term_n, &L4_MABX_P.Calculate_I_term_n);
21856
21857 /* End of Update for SubSystem: '<S238>/Calculate_I_term' */
21858 }
21859
21860 /* End of Update for SubSystem: '<S79>/Throttle_controller_gov' */
21861
21862 /* Update for Enabled SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' incorporates:
21863 * EnablePort: '<S178>/Enable'
21864 */
21865 if (L4_MABX_DW.Determine_shift_interlock_brake) {
21866 /* Update for UnitDelay: '<S178>/Unit_Delay' */
21867 L4_MABX_DW.Unit_Delay_DSTATE_o = L4_MABX_B.If_Then_Else_il.Switch;
21868
21869 /* Update for UnitDelay: '<S188>/Unit_Delay' incorporates:
21870 * Constant: '<S188>/Constant'
21871 */
21872 L4_MABX_DW.Unit_Delay_DSTATE_a = L4_MABX_P.Constant_Value_ii;
21873
21874 /* Update for UnitDelay: '<S192>/FixPt Unit Delay2' incorporates:
21875 * Constant: '<S192>/FixPt Constant'
21876 */
21877 L4_MABX_DW.FixPtUnitDelay2_DSTATE_la = L4_MABX_P.FixPtConstant_Value_kr;
21878
21879 /* Update for UnitDelay: '<S192>/FixPt Unit Delay1' */
21880 L4_MABX_DW.FixPtUnitDelay1_DSTATE_ds = L4_MABX_B.If_Then_Else_ep.Switch;
21881
21882 /* Update for UnitDelay: '<S189>/Unit_Delay' */
21883 L4_MABX_DW.Unit_Delay_DSTATE_om = L4_MABX_B.DigitalClock_e;
21884 }
21885
21886 /* End of Update for SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' */
21887
21888 /* Update for Enabled SubSystem: '<S99>/Determine_brake_hold_pressure_target' incorporates:
21889 * EnablePort: '<S177>/Enable'
21890 */
21891 if (L4_MABX_DW.Determine_brake_hold_pressure_t) {
21892 /* Update for UnitDelay: '<S177>/Unit_Delay' */
21893 L4_MABX_DW.Unit_Delay_DSTATE_c = L4_MABX_B.If_Then_Else_gj.Switch;
21894
21895 /* Update for UnitDelay: '<S181>/Unit_Delay' incorporates:
21896 * Constant: '<S181>/Constant'
21897 */
21898 L4_MABX_DW.Unit_Delay_DSTATE_or = L4_MABX_P.Constant_Value_m3;
21899
21900 /* Update for UnitDelay: '<S185>/FixPt Unit Delay2' incorporates:
21901 * Constant: '<S185>/FixPt Constant'
21902 */
21903 L4_MABX_DW.FixPtUnitDelay2_DSTATE_je = L4_MABX_P.FixPtConstant_Value_aw;
21904
21905 /* Update for UnitDelay: '<S185>/FixPt Unit Delay1' */
21906 L4_MABX_DW.FixPtUnitDelay1_DSTATE_b0 = L4_MABX_B.If_Then_Else_nz.Switch;
21907
21908 /* Update for UnitDelay: '<S182>/Unit_Delay' */
21909 L4_MABX_DW.Unit_Delay_DSTATE_oj = L4_MABX_B.DigitalClock_c;
21910 }
21911
21912 /* End of Update for SubSystem: '<S99>/Determine_brake_hold_pressure_target' */
21913
21914 /* Update for Enabled SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' incorporates:
21915 * EnablePort: '<S96>/Enable'
21916 */
21917 if (L4_MABX_DW.Bendix_2C2_brake_application_pr) {
21918 /* Update for UnitDelay: '<S105>/Unit_Delay' */
21919 L4_MABX_DW.Unit_Delay_DSTATE_d = L4_MABX_B.DigitalClock_j;
21920
21921 /* Update for UnitDelay: '<S109>/Unit_Delay' incorporates:
21922 * Constant: '<S109>/Constant'
21923 */
21924 L4_MABX_DW.Unit_Delay_DSTATE_omj = L4_MABX_P.Constant_Value_lo;
21925
21926 /* Update for UnitDelay: '<S129>/Unit_Delay1' incorporates:
21927 * Constant: '<S129>/Constant'
21928 */
21929 L4_MABX_DW.Unit_Delay1_DSTATE_b = L4_MABX_P.Constant_Value_olo;
21930
21931 /* Update for UnitDelay: '<S130>/Unit_Delay' incorporates:
21932 * Constant: '<S130>/Constant'
21933 */
21934 L4_MABX_DW.Unit_Delay_DSTATE_h4 = L4_MABX_P.Constant_Value_hit;
21935
21936 /* Update for UnitDelay: '<S134>/FixPt Unit Delay2' incorporates:
21937 * Constant: '<S134>/FixPt Constant'
21938 */
21939 L4_MABX_DW.FixPtUnitDelay2_DSTATE_gm = L4_MABX_P.FixPtConstant_Value_fl;
21940
21941 /* Update for UnitDelay: '<S134>/FixPt Unit Delay1' */
21942 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g1 = L4_MABX_B.If_Then_Else_bg.Switch;
21943
21944 /* Update for UnitDelay: '<S129>/Unit_Delay2' */
21945 L4_MABX_DW.Unit_Delay2_DSTATE_dy = L4_MABX_B.If_Then_Else_ly.Switch;
21946
21947 /* Update for Enabled SubSystem: '<S106>/Calculate_D_term' */
21948 L4__Calculate_D_term_Update(&L4_MABX_B.Calculate_D_term,
21949 &L4_MABX_DW.Calculate_D_term, &L4_MABX_P.Calculate_D_term);
21950
21951 /* End of Update for SubSystem: '<S106>/Calculate_D_term' */
21952
21953 /* Update for UnitDelay: '<S104>/Unit_Delay' */
21954 L4_MABX_DW.Unit_Delay_DSTATE_i = L4_MABX_B.Add_e;
21955
21956 /* Update for Enabled SubSystem: '<S106>/Calculate_I_term' */
21957 L4__Calculate_I_term_Update(&L4_MABX_B.Calculate_I_term,
21958 &L4_MABX_DW.Calculate_I_term, &L4_MABX_P.Calculate_I_term);
21959
21960 /* End of Update for SubSystem: '<S106>/Calculate_I_term' */
21961 }
21962
21963 /* End of Update for SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' */
21964
21965 /* Update for UnitDelay: '<S376>/Unit_Delay' */
21966 L4_MABX_DW.Unit_Delay_DSTATE_cx = L4_MABX_B.LogicalOperator2_f5;
21967
21968 /* Update for UnitDelay: '<S377>/Unit_Delay' incorporates:
21969 * Constant: '<S377>/Constant'
21970 */
21971 L4_MABX_DW.Unit_Delay_DSTATE_d0 = L4_MABX_P.Constant_Value_c1;
21972
21973 /* Update for UnitDelay: '<S334>/Unit_Delay' */
21974 L4_MABX_DW.Unit_Delay_DSTATE_e = L4_MABX_B.If_Then_Else_m4.Switch;
21975
21976 /* Update for UnitDelay: '<S381>/FixPt Unit Delay2' incorporates:
21977 * Constant: '<S381>/FixPt Constant'
21978 */
21979 L4_MABX_DW.FixPtUnitDelay2_DSTATE_a = L4_MABX_P.FixPtConstant_Value_jx;
21980
21981 /* Update for UnitDelay: '<S381>/FixPt Unit Delay1' */
21982 L4_MABX_DW.FixPtUnitDelay1_DSTATE_h = L4_MABX_B.If_Then_Else_m4.Switch;
21983
21984 /* Update for UnitDelay: '<S378>/Unit_Delay' */
21985 L4_MABX_DW.Unit_Delay_DSTATE_m = L4_MABX_B.DigitalClock;
21986
21987 /* Update for UnitDelay: '<S365>/Unit_Delay' */
21988 L4_MABX_DW.Unit_Delay_DSTATE_iy = L4_MABX_B.LogicalOperator1_g;
21989
21990 /* Update for UnitDelay: '<S366>/Unit_Delay' incorporates:
21991 * Constant: '<S366>/Constant'
21992 */
21993 L4_MABX_DW.Unit_Delay_DSTATE_mv = L4_MABX_P.Constant_Value_am;
21994
21995 /* Update for UnitDelay: '<S332>/Unit_Delay' */
21996 L4_MABX_DW.Unit_Delay_DSTATE_gr = L4_MABX_B.If_Then_Else_bf.Switch;
21997
21998 /* Update for UnitDelay: '<S370>/FixPt Unit Delay2' incorporates:
21999 * Constant: '<S370>/FixPt Constant'
22000 */
22001 L4_MABX_DW.FixPtUnitDelay2_DSTATE_ip = L4_MABX_P.FixPtConstant_Value_dx;
22002
22003 /* Update for UnitDelay: '<S370>/FixPt Unit Delay1' */
22004 L4_MABX_DW.FixPtUnitDelay1_DSTATE_hq = L4_MABX_B.If_Then_Else_bf.Switch;
22005
22006 /* Update for UnitDelay: '<S367>/Unit_Delay' */
22007 L4_MABX_DW.Unit_Delay_DSTATE_b = L4_MABX_B.DigitalClock_b;
22008
22009 /* Update for UnitDelay: '<S329>/Delay Input1' */
22010 L4_MABX_DW.DelayInput1_DSTATE[0] = L4_MABX_B.Distance_to_achieve_speed_targe;
22011 L4_MABX_DW.DelayInput1_DSTATE[1] = L4_MABX_B.Vehicle_speed_target_o;
22012
22013 /* Update for UnitDelay: '<S347>/Unit_Delay' */
22014 L4_MABX_DW.Unit_Delay_DSTATE_bw = L4_MABX_B.If_Then_Else_og.Switch;
22015
22016 /* Update for UnitDelay: '<S349>/Unit_Delay' */
22017 L4_MABX_DW.Unit_Delay_DSTATE_k = L4_MABX_B.LogicalOperator1_p;
22018
22019 /* Update for UnitDelay: '<S358>/FixPt Unit Delay2' incorporates:
22020 * Constant: '<S358>/FixPt Constant'
22021 */
22022 L4_MABX_DW.FixPtUnitDelay2_DSTATE_fh = L4_MABX_P.FixPtConstant_Value_gy;
22023
22024 /* Update for UnitDelay: '<S358>/FixPt Unit Delay1' */
22025 L4_MABX_DW.FixPtUnitDelay1_DSTATE_l = L4_MABX_B.Xnew;
22026
22027 /* Update for UnitDelay: '<S356>/Unit_Delay' */
22028 L4_MABX_DW.Unit_Delay_DSTATE_ps = L4_MABX_B.DigitalClock_f;
22029
22030 /* Update for UnitDelay: '<S336>/Delay Input1' */
22031 L4_MABX_DW.DelayInput1_DSTATE_f[0] = L4_MABX_B.Distance_to_achieve_speed_targe;
22032 L4_MABX_DW.DelayInput1_DSTATE_f[1] = L4_MABX_B.Vehicle_speed_target_o;
22033
22034 /* Update for UnitDelay: '<S338>/Unit_Delay' incorporates:
22035 * Constant: '<S338>/Constant'
22036 */
22037 L4_MABX_DW.Unit_Delay_DSTATE_l = L4_MABX_P.Constant_Value_pu;
22038
22039 /* Update for UnitDelay: '<S342>/FixPt Unit Delay2' incorporates:
22040 * Constant: '<S342>/FixPt Constant'
22041 */
22042 L4_MABX_DW.FixPtUnitDelay2_DSTATE_c = L4_MABX_P.FixPtConstant_Value_az;
22043
22044 /* Update for UnitDelay: '<S342>/FixPt Unit Delay1' */
22045 L4_MABX_DW.FixPtUnitDelay1_DSTATE_ej = L4_MABX_B.If_Then_Else_pz.Switch;
22046
22047 /* Update for UnitDelay: '<S337>/Unit_Delay' */
22048 L4_MABX_DW.Unit_Delay_1_DSTATE_j =
22049 L4_MABX_B.If_Then_Else_mm.Vehicle_speed_target;
22050 L4_MABX_DW.Unit_Delay_2_DSTATE_e = L4_MABX_B.If_Then_Else_mm.Vehicle_speed;
22051 L4_MABX_DW.Unit_Delay_3_DSTATE_j = L4_MABX_B.If_Then_Else_mm.Distance_m;
22052
22053 /* Update for UnitDelay: '<S335>/Unit_Delay' */
22054 L4_MABX_DW.Unit_Delay_DSTATE_f = L4_MABX_B.DigitalClock_p;
22055
22056 /* Update for Enabled SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' incorporates:
22057 * EnablePort: '<S97>/Enable'
22058 */
22059 if (L4_MABX_DW.Bendix_2C2_vehicle_speed_feedba) {
22060 /* Update for UnitDelay: '<S140>/Unit_Delay' */
22061 L4_MABX_DW.Unit_Delay_DSTATE_eu = L4_MABX_B.DigitalClock_n;
22062
22063 /* Update for UnitDelay: '<S147>/Unit_Delay' incorporates:
22064 * Constant: '<S147>/Constant'
22065 */
22066 L4_MABX_DW.Unit_Delay_DSTATE_nw = L4_MABX_P.Constant_Value_j5;
22067
22068 /* Update for UnitDelay: '<S167>/Unit_Delay1' incorporates:
22069 * Constant: '<S167>/Constant'
22070 */
22071 L4_MABX_DW.Unit_Delay1_DSTATE_f = L4_MABX_P.Constant_Value_bd;
22072
22073 /* Update for UnitDelay: '<S168>/Unit_Delay' incorporates:
22074 * Constant: '<S168>/Constant'
22075 */
22076 L4_MABX_DW.Unit_Delay_DSTATE_g4 = L4_MABX_P.Constant_Value_m2;
22077
22078 /* Update for UnitDelay: '<S172>/FixPt Unit Delay2' incorporates:
22079 * Constant: '<S172>/FixPt Constant'
22080 */
22081 L4_MABX_DW.FixPtUnitDelay2_DSTATE_o = L4_MABX_P.FixPtConstant_Value_j;
22082
22083 /* Update for UnitDelay: '<S172>/FixPt Unit Delay1' */
22084 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g2 = L4_MABX_B.If_Then_Else_iy.Switch;
22085
22086 /* Update for UnitDelay: '<S167>/Unit_Delay2' */
22087 L4_MABX_DW.Unit_Delay2_DSTATE_c = L4_MABX_B.If_Then_Else_bc.Switch;
22088
22089 /* Update for Enabled SubSystem: '<S144>/Calculate_D_term' */
22090 L4__Calculate_D_term_Update(&L4_MABX_B.Calculate_D_term_p,
22091 &L4_MABX_DW.Calculate_D_term_p, &L4_MABX_P.Calculate_D_term_p);
22092
22093 /* End of Update for SubSystem: '<S144>/Calculate_D_term' */
22094
22095 /* Update for UnitDelay: '<S139>/Unit_Delay' */
22096 L4_MABX_DW.Unit_Delay_DSTATE_hs = L4_MABX_B.Add_mh;
22097
22098 /* Update for Enabled SubSystem: '<S144>/Calculate_I_term' */
22099 L4__Calculate_I_term_Update(&L4_MABX_B.Calculate_I_term_e,
22100 &L4_MABX_DW.Calculate_I_term_e, &L4_MABX_P.Calculate_I_term_e);
22101
22102 /* End of Update for SubSystem: '<S144>/Calculate_I_term' */
22103 }
22104
22105 /* End of Update for SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' */
22106
22107 /* Update for UnitDelay: '<S101>/Unit_Delay' incorporates:
22108 * Constant: '<S101>/Constant7'
22109 */
22110 L4_MABX_DW.Unit_Delay_DSTATE_eu4 = L4_MABX_P.Constant7_Value_j;
22111
22112 /* Update for UnitDelay: '<S197>/Unit_Delay1' incorporates:
22113 * Constant: '<S197>/Constant'
22114 */
22115 L4_MABX_DW.Unit_Delay1_DSTATE_d = L4_MABX_P.Constant_Value_jf;
22116
22117 /* Update for UnitDelay: '<S197>/Unit_Delay2' */
22118 L4_MABX_DW.Unit_Delay2_DSTATE_e = L4_MABX_B.If_Then_Else_ga.Switch;
22119
22120 /* Update for UnitDelay: '<S196>/UD' */
22121 L4_MABX_DW.UD_DSTATE = L4_MABX_B.TSamp;
22122
22123 /* Update for UnitDelay: '<S314>/Unit_Delay1' incorporates:
22124 * Constant: '<S314>/Constant'
22125 */
22126 L4_MABX_DW.Unit_Delay1_DSTATE_db = L4_MABX_P.Constant_Value_hx;
22127
22128 /* Update for UnitDelay: '<S314>/Unit_Delay2' */
22129 L4_MABX_DW.Unit_Delay2_DSTATE_d = L4_MABX_B.If_Then_Else_b.Switch;
22130
22131 /* Update for UnitDelay: '<S313>/Delay Input1' */
22132 L4_MABX_DW.DelayInput1_DSTATE_f0 = L4_MABX_B.JumpNearEdge;
22133
22134 /* Update for UnitDelay: '<S315>/Unit_Delay1' incorporates:
22135 * Constant: '<S315>/Constant'
22136 */
22137 L4_MABX_DW.Unit_Delay1_DSTATE_a = L4_MABX_P.Constant_Value_bh;
22138
22139 /* Update for UnitDelay: '<S315>/Unit_Delay2' */
22140 L4_MABX_DW.Unit_Delay2_DSTATE_i = L4_MABX_B.If_Then_Else_mk.Switch;
22141
22142 /* Update for UnitDelay: '<S316>/Unit_Delay1' incorporates:
22143 * Constant: '<S316>/Constant'
22144 */
22145 L4_MABX_DW.Unit_Delay1_DSTATE_p = L4_MABX_P.Constant_Value_hxo;
22146
22147 /* Update for UnitDelay: '<S316>/Unit_Delay2' */
22148 L4_MABX_DW.Unit_Delay2_DSTATE_p = L4_MABX_B.If_Then_Else_lh.Switch;
22149
22150 /* Update for Enabled SubSystem: '<S276>/Slew_at_event' incorporates:
22151 * EnablePort: '<S321>/Enable'
22152 */
22153 if (L4_MABX_DW.Slew_at_event_MODE_d) {
22154 /* Update for UnitDelay: '<S323>/Unit_Delay' */
22155 L4_MABX_DW.Unit_Delay_DSTATE_bd = L4_MABX_B.DataTypeConversion_l1;
22156
22157 /* Update for UnitDelay: '<S324>/Unit_Delay' incorporates:
22158 * Constant: '<S324>/Constant'
22159 */
22160 L4_MABX_DW.Unit_Delay_DSTATE_jt = L4_MABX_P.Constant_Value_hg;
22161
22162 /* Update for UnitDelay: '<S327>/FixPt Unit Delay2' incorporates:
22163 * Constant: '<S327>/FixPt Constant'
22164 */
22165 L4_MABX_DW.FixPtUnitDelay2_DSTATE_j = L4_MABX_P.FixPtConstant_Value_n;
22166
22167 /* Update for UnitDelay: '<S327>/FixPt Unit Delay1' */
22168 L4_MABX_DW.FixPtUnitDelay1_DSTATE_o = L4_MABX_B.If_Then_Else_n3.Switch;
22169
22170 /* Update for UnitDelay: '<S322>/Unit_Delay' */
22171 L4_MABX_DW.Unit_Delay_DSTATE_ll = L4_MABX_B.LogicalOperator_dm;
22172 }
22173
22174 /* End of Update for SubSystem: '<S276>/Slew_at_event' */
22175
22176 /* Update for UnitDelay: '<S278>/Unit Delay' */
22177 L4_MABX_DW.UnitDelay_DSTATE_d = L4_MABX_B.Switch1_fi;
22178
22179 /* Update for UnitDelay: '<S288>/Unit Delay' */
22180 L4_MABX_DW.UnitDelay_DSTATE_m = L4_MABX_B.Add1_mn;
22181
22182 /* Update for UnitDelay: '<S289>/Unit Delay' */
22183 L4_MABX_DW.UnitDelay_DSTATE_m0 = L4_MABX_B.Switch_k;
22184
22185 /* Update for UnitDelay: '<S289>/Unit Delay1' */
22186 L4_MABX_DW.UnitDelay1_DSTATE_k = L4_MABX_B.Divide1_b;
22187
22188 /* Update for UnitDelay: '<S283>/Unit Delay' */
22189 L4_MABX_DW.UnitDelay_DSTATE_m1 = L4_MABX_B.Switch1_pb;
22190
22191 /* Update for DiscreteTransferFcn: '<S274>/Error 5Hz LPF' */
22192 denAccum = L4_MABX_B.error;
22193 denAccum -= L4_MABX_P.Error5HzLPF_DenCoef[1] * L4_MABX_DW.Error5HzLPF_states[0];
22194 denAccum -= L4_MABX_P.Error5HzLPF_DenCoef[2] * L4_MABX_DW.Error5HzLPF_states[1];
22195 denAccum -= L4_MABX_P.Error5HzLPF_DenCoef[3] * L4_MABX_DW.Error5HzLPF_states[2];
22196 denAccum /= L4_MABX_P.Error5HzLPF_DenCoef[0];
22197 L4_MABX_DW.Error5HzLPF_states[2] = L4_MABX_DW.Error5HzLPF_states[1];
22198 L4_MABX_DW.Error5HzLPF_states[1] = L4_MABX_DW.Error5HzLPF_states[0];
22199 L4_MABX_DW.Error5HzLPF_states[0] = denAccum;
22200
22201 /* Update for DiscreteIntegrator: '<S298>/Integrator' */
22202 L4_MABX_DW.Integrator_DSTATE += L4_MABX_P.Integrator_gainval *
22203 L4_MABX_B.IntegralGain;
22204 L4_MABX_DW.Integrator_PrevResetState = (int8_T)AutonomousEnabled;
22205
22206 /* Update for DiscreteIntegrator: '<S298>/Filter' */
22207 L4_MABX_DW.Filter_DSTATE += L4_MABX_P.Filter_gainval *
22208 L4_MABX_B.FilterCoefficient;
22209 L4_MABX_DW.Filter_PrevResetState = (int8_T)AutonomousEnabled;
22210
22211 /* Update for UnitDelay: '<S300>/Delay Input' */
22212 L4_MABX_DW.DelayInput_DSTATE = L4_MABX_B.Saturate;
22213
22214 /* Update for UnitDelay: '<S300>/Delay Output' */
22215 L4_MABX_DW.DelayOutput_DSTATE = L4_MABX_B.Downcast;
22216
22217 /* Update for DiscreteTransferFcn: '<S274>/5Hz LPF' */
22218 denAccum = L4_MABX_B.Sum2;
22219 denAccum -= L4_MABX_P.uHzLPF_DenCoef[1] * L4_MABX_DW.uHzLPF_states[0];
22220 denAccum -= L4_MABX_P.uHzLPF_DenCoef[2] * L4_MABX_DW.uHzLPF_states[1];
22221 denAccum -= L4_MABX_P.uHzLPF_DenCoef[3] * L4_MABX_DW.uHzLPF_states[2];
22222 denAccum /= L4_MABX_P.uHzLPF_DenCoef[0];
22223 L4_MABX_DW.uHzLPF_states[2] = L4_MABX_DW.uHzLPF_states[1];
22224 L4_MABX_DW.uHzLPF_states[1] = L4_MABX_DW.uHzLPF_states[0];
22225 L4_MABX_DW.uHzLPF_states[0] = denAccum;
22226
22227 /* Update for DiscreteIntegrator: '<S292>/Discrete-Time Integrator' */
22228 L4_MABX_DW.DiscreteTimeIntegrator_IC_LOADI = 0U;
22229 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE +=
22230 L4_MABX_P.DiscreteTimeIntegrator_gainval * L4_MABX_B.Gain_o;
22231 L4_MABX_DW.DiscreteTimeIntegrator_PrevRese = (int8_T)AutonomousEnabled;
22232
22233 /* Update for UnitDelay: '<S308>/Delay Input2' */
22234 L4_MABX_DW.DelayInput2_DSTATE = L4_MABX_B.DifferenceInputs2;
22235
22236 /* Update for DiscreteIntegrator: '<S80>/Discrete-Time Integrator' incorporates:
22237 * Constant: '<S80>/ResetIntegrator'
22238 */
22239 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e +=
22240 L4_MABX_P.DiscreteTimeIntegrator_gainva_l * L4_MABX_B.Switch1_p;
22241 if (L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e >=
22242 L4_MABX_P.DiscreteTimeIntegrator_UpperSat) {
22243 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e =
22244 L4_MABX_P.DiscreteTimeIntegrator_UpperSat;
22245 } else {
22246 if (L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e <=
22247 L4_MABX_P.DiscreteTimeIntegrator_LowerSat) {
22248 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e =
22249 L4_MABX_P.DiscreteTimeIntegrator_LowerSat;
22250 }
22251 }
22252
22253 if (L4_MABX_P.ResetIntegrator_Value > 0.0) {
22254 L4_MABX_DW.DiscreteTimeIntegrator_PrevRe_e = 1;
22255 } else if (L4_MABX_P.ResetIntegrator_Value < 0.0) {
22256 L4_MABX_DW.DiscreteTimeIntegrator_PrevRe_e = -1;
22257 } else if (L4_MABX_P.ResetIntegrator_Value == 0.0) {
22258 L4_MABX_DW.DiscreteTimeIntegrator_PrevRe_e = 0;
22259 } else {
22260 L4_MABX_DW.DiscreteTimeIntegrator_PrevRe_e = 2;
22261 }
22262
22263 /* End of Update for DiscreteIntegrator: '<S80>/Discrete-Time Integrator' */
22264
22265 /* Update for UnitDelay: '<S80>/Unit Delay' */
22266 L4_MABX_DW.UnitDelay_DSTATE_e = L4_MABX_B.Switch2_i1;
22267
22268 /* Update for UnitDelay: '<S360>/FixPt Unit Delay2' incorporates:
22269 * Constant: '<S360>/FixPt Constant'
22270 */
22271 L4_MABX_DW.FixPtUnitDelay2_DSTATE_aw = L4_MABX_P.FixPtConstant_Value_p;
22272
22273 /* Update for UnitDelay: '<S360>/FixPt Unit Delay1' */
22274 L4_MABX_DW.FixPtUnitDelay1_DSTATE_p = L4_MABX_B.Xnew_h;
22275
22276 /* Update for UnitDelay: '<S361>/FixPt Unit Delay2' incorporates:
22277 * Constant: '<S361>/FixPt Constant'
22278 */
22279 L4_MABX_DW.FixPtUnitDelay2_DSTATE_g = L4_MABX_P.FixPtConstant_Value_el;
22280
22281 /* Update for UnitDelay: '<S361>/FixPt Unit Delay1' */
22282 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g = L4_MABX_B.Xnew_f;
22283
22284 /* Update for UnitDelay: '<S355>/Unit_Delay' */
22285 L4_MABX_DW.Unit_Delay_DSTATE_j = L4_MABX_B.DigitalClock_d;
22286
22287 /* End of Update for SubSystem: '<S65>/Task_10ms' */
22288
22289 /* Update for Atomic SubSystem: '<S815>/CAN_TX_10ms' */
22290
22291 /* Update for UnitDelay: '<S972>/Unit_Delay' */
22292 L4_MABX_DW.Unit_Delay_DSTATE_ib = L4_MABX_B.Operator_be;
22293
22294 /* Update for UnitDelay: '<S973>/Unit Delay' */
22295 L4_MABX_DW.UnitDelay_DSTATE_mx = L4_MABX_B.Switch1_d;
22296
22297 /* End of Update for SubSystem: '<S815>/CAN_TX_10ms' */
22298
22299 /* Update for UnitDelay: '<S825>/Unit Delay2' */
22300 L4_MABX_DW.UnitDelay2_DSTATE = L4_MABX_B.enTPCM;
22301
22302 /* Update for UnitDelay: '<S825>/Unit Delay1' */
22303 L4_MABX_DW.UnitDelay1_DSTATE_e = L4_MABX_B.TPDT_count;
22304
22305 /* Update for UnitDelay: '<S825>/Unit Delay3' */
22306 L4_MABX_DW.UnitDelay3_DSTATE = L4_MABX_B.enTPDT;
22307
22308 /* Update for UnitDelay: '<S3>/Unit_Delay' incorporates:
22309 * Constant: '<S202>/Constant'
22310 * Constant: '<S80>/zero'
22311 */
22312 L4_MABX_DW.Unit_Delay_1_DSTATE = DesiredSteeringAngle;
22313 L4_MABX_DW.Unit_Delay_10_DSTATE = L4_MABX_B.Add1_h;
22314 L4_MABX_DW.Unit_Delay_100_DSTATE = L4_MABX_B.SPN1760_GrossCombinationVehicle;
22315 L4_MABX_DW.Unit_Delay_101_DSTATE = L4_MABX_B.ACCDistanceAlertSignal;
22316 L4_MABX_DW.Unit_Delay_102_DSTATE = L4_MABX_B.ForwardCollisionWarning;
22317 L4_MABX_DW.Unit_Delay_103_DSTATE = L4_MABX_B.SPN544_EngineReferenceTorque;
22318 L4_MABX_DW.Unit_Delay_104_DSTATE = L4_MABX_B.SFunction1_o4_i3;
22319 L4_MABX_DW.Unit_Delay_105_DSTATE = L4_MABX_B.SFunction1_o5_o;
22320 L4_MABX_DW.Unit_Delay_106_DSTATE = L4_MABX_B.SFunction1_o6_n;
22321 L4_MABX_DW.Unit_Delay_107_DSTATE = L4_MABX_B.SFunction1_o7_c;
22322 L4_MABX_DW.Unit_Delay_108_DSTATE = SteerWheelAngle;
22323 L4_MABX_DW.Unit_Delay_109_DSTATE = YawRate;
22324 L4_MABX_DW.Unit_Delay_11_DSTATE = L4_MABX_B.Switch2_i1;
22325 L4_MABX_DW.Unit_Delay_110_DSTATE = SPN1810_LongitudinalAcceleration;
22326 L4_MABX_DW.Unit_Delay_111_DSTATE = L4_MABX_B.SFunction1_o2_n;
22327 L4_MABX_DW.Unit_Delay_112_DSTATE = L4_MABX_B.SFunction1_o3_kg;
22328 L4_MABX_DW.Unit_Delay_113_DSTATE = L4_MABX_B.SFunction1_o5_j;
22329 L4_MABX_DW.Unit_Delay_114_DSTATE = L4_MABX_B.SFunction1_o1_ms;
22330 L4_MABX_DW.Unit_Delay_115_DSTATE = L4_MABX_B.SFunction1_o3_ev;
22331 L4_MABX_DW.Unit_Delay_116_DSTATE = L4_MABX_B.LogicalOperator1_j;
22332 L4_MABX_DW.Unit_Delay_117_DSTATE = L4_MABX_B.LogicalOperator1_h;
22333 L4_MABX_DW.Unit_Delay_118_DSTATE = L4_MABX_B.PitchAngleExRange;
22334 L4_MABX_DW.Unit_Delay_119_DSTATE = L4_MABX_B.SFunction1_o3_gp;
22335 L4_MABX_DW.Unit_Delay_12_DSTATE = L4_MABX_B.DiscreteTimeIntegrator_h;
22336 L4_MABX_DW.Unit_Delay_120_DSTATE = L4_MABX_B.SFunction1_o1_g3;
22337 L4_MABX_DW.Unit_Delay_121_DSTATE = L4_MABX_B.SFunction1_o2_lf;
22338 L4_MABX_DW.Unit_Delay_122_DSTATE = L4_MABX_B.Latitude_;
22339 L4_MABX_DW.Unit_Delay_123_DSTATE = L4_MABX_B.Longitude_;
22340 L4_MABX_DW.Unit_Delay_124_DSTATE = L4_MABX_B.HDOP_;
22341 L4_MABX_DW.Unit_Delay_125_DSTATE = L4_MABX_B.XPRControlMode;
22342 L4_MABX_DW.Unit_Delay_126_DSTATE = L4_MABX_B.XPRErrorState;
22343 L4_MABX_DW.Unit_Delay_127_DSTATE = L4_MABX_B.PressureP1;
22344 L4_MABX_DW.Unit_Delay_128_DSTATE = L4_MABX_B.PressureP4;
22345 L4_MABX_DW.Unit_Delay_129_DSTATE = L4_MABX_B.PressureP21;
22346 L4_MABX_DW.Unit_Delay_13_DSTATE = L4_MABX_B.numLanePoints_j;
22347 L4_MABX_DW.Unit_Delay_130_DSTATE = L4_MABX_B.PressureP22;
22348 L4_MABX_DW.Unit_Delay_131_DSTATE = L4_MABX_B.PressureP42;
22349 L4_MABX_DW.Unit_Delay_132_DSTATE = ReAX_ActualHandwheelPos;
22350 L4_MABX_DW.Unit_Delay_133_DSTATE = ReAX_EchoedSteerWheelPos;
22351 L4_MABX_DW.Unit_Delay_134_DSTATE = RTMapsOk;
22352 L4_MABX_DW.Unit_Delay_135_DSTATE = SupervisorMode;
22353 L4_MABX_DW.Unit_Delay_136_DSTATE = CurrentAzimuth_rad;
22354 L4_MABX_DW.Unit_Delay_137_DSTATE = TargetAzimuth_rad;
22355 L4_MABX_DW.Unit_Delay_138_DSTATE = CurrentVelocity_kph;
22356 L4_MABX_DW.Unit_Delay_139_DSTATE = TargetVelocity_kph;
22357 L4_MABX_DW.Unit_Delay_14_DSTATE = L4_MABX_B.correctedError;
22358 L4_MABX_DW.Unit_Delay_140_DSTATE = Curvature;
22359 L4_MABX_DW.Unit_Delay_141_DSTATE = CrosstrackError;
22360 L4_MABX_DW.Unit_Delay_15_DSTATE = L4_MABX_B.Switch1_j;
22361 L4_MABX_DW.Unit_Delay_16_DSTATE = L4_MABX_B.rad2deg1;
22362 L4_MABX_DW.Unit_Delay_17_DSTATE = L4_MABX_B.If_Then_Else_iz.Switch;
22363 L4_MABX_DW.Unit_Delay_18_DSTATE = L4_MABX_B.APTC_arb_pedal_low_idl_sw_o;
22364 L4_MABX_DW.Unit_Delay_19_DSTATE = L4_MABX_B.If_Then_Else_f.Switch;
22365 L4_MABX_DW.Unit_Delay_2_DSTATE = L4_MABX_B.Add3;
22366 L4_MABX_DW.Unit_Delay_20_DSTATE = L4_MABX_P.Constant_Value_jg4;
22367 L4_MABX_DW.Unit_Delay_21_DSTATE = L4_MABX_B.If_Then_Else_pi.Switch;
22368 L4_MABX_DW.Unit_Delay_22_DSTATE = L4_MABX_B.Add_ds;
22369 L4_MABX_DW.Unit_Delay_23_DSTATE = L4_MABX_B.If_Then_Else_k2.Switch;
22370 L4_MABX_DW.Unit_Delay_24_DSTATE = L4_MABX_B.Product_i;
22371 L4_MABX_DW.Unit_Delay_25_DSTATE = L4_MABX_B.PID_i_term_c;
22372 L4_MABX_DW.Unit_Delay_26_DSTATE = L4_MABX_B.PID_d_term_c;
22373 L4_MABX_DW.Unit_Delay_27_DSTATE = L4_MABX_B.PID_hold_i_term_f_b;
22374 L4_MABX_DW.Unit_Delay_28_DSTATE = L4_MABX_B.ThrottlePID_Y_m;
22375 L4_MABX_DW.Unit_Delay_29_DSTATE = L4_MABX_B.MinMax1_n;
22376 L4_MABX_DW.Unit_Delay_3_DSTATE = L4_MABX_B.Add_px;
22377 L4_MABX_DW.Unit_Delay_30_DSTATE = L4_MABX_B.F_Ignition_relay_command_i;
22378 L4_MABX_DW.Unit_Delay_31_DSTATE = L4_MABX_B.F_Inverter_relay_command_p;
22379 L4_MABX_DW.Unit_Delay_32_DSTATE = L4_MABX_B.F_MABX_relay_command_n;
22380 L4_MABX_DW.Unit_Delay_33_DSTATE = L4_MABX_B.F_Sensor_relay_command_k;
22381 L4_MABX_DW.Unit_Delay_34_DSTATE = L4_MABX_B.BrkPedArbBrakeSwitch_c;
22382 L4_MABX_DW.Unit_Delay_35_DSTATE = L4_MABX_B.Diff;
22383 L4_MABX_DW.Unit_Delay_36_DSTATE = L4_MABX_B.F_Brake_control_active;
22384 L4_MABX_DW.Unit_Delay_37_DSTATE = L4_MABX_B.F_Hold_brakes_at_zero_d;
22385 L4_MABX_DW.Unit_Delay_38_DSTATE = L4_MABX_B.BrakingPID_Y_k;
22386 L4_MABX_DW.Unit_Delay_39_DSTATE = 0.0;
22387 L4_MABX_DW.Unit_Delay_4_DSTATE = L4_MABX_B.Product_d;
22388 L4_MABX_DW.Unit_Delay_40_DSTATE = L4_MABX_B.VSPD_TARGET_KPH_APV_g;
22389 L4_MABX_DW.Unit_Delay_41_DSTATE = L4_MABX_B.Vehicle_speed_target_n;
22390 L4_MABX_DW.Unit_Delay_42_DSTATE = L4_MABX_B.VSPD_HYST_KPH_APV_f;
22391 L4_MABX_DW.Unit_Delay_43_DSTATE = L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_AP_b;
22392 L4_MABX_DW.Unit_Delay_44_DSTATE = L4_MABX_B.ACCEL_LIM_MS2_APV_b;
22393 L4_MABX_DW.Unit_Delay_46_DSTATE = AutonomousOutputEnabled;
22394 L4_MABX_DW.Unit_Delay_5_DSTATE = L4_MABX_B.Switch2_i;
22395 L4_MABX_DW.Unit_Delay_6_DSTATE = L4_MABX_B.Conversion;
22396 L4_MABX_DW.Unit_Delay_7_DSTATE = L4_MABX_B.Add2;
22397 L4_MABX_DW.Unit_Delay_8_DSTATE = L4_MABX_P.zero_Value;
22398 L4_MABX_DW.Unit_Delay_82_DSTATE = Pedal_pwm_position;
22399 L4_MABX_DW.Unit_Delay_83_DSTATE = L4_MABX_B.IgnitionKeySwitch_voltage;
22400 L4_MABX_DW.Unit_Delay_84_DSTATE = L4_MABX_B.SFunction1_o8_l;
22401 L4_MABX_DW.Unit_Delay_85_DSTATE = L4_MABX_B.SFunction1_o2_hy;
22402 L4_MABX_DW.Unit_Delay_86_DSTATE = L4_MABX_B.SFunction1_o7_kk;
22403 L4_MABX_DW.Unit_Delay_87_DSTATE = L4_MABX_B.SFunction1_o1_os;
22404 L4_MABX_DW.Unit_Delay_88_DSTATE = L4_MABX_B.SFunction1_o1_le;
22405 L4_MABX_DW.Unit_Delay_89_DSTATE = L4_MABX_B.SFunction1_o2_g3;
22406 L4_MABX_DW.Unit_Delay_9_DSTATE = L4_MABX_B.Add1_h;
22407 L4_MABX_DW.Unit_Delay_90_DSTATE = L4_MABX_B.SFunction1_o4_nr;
22408 L4_MABX_DW.Unit_Delay_91_DSTATE = L4_MABX_B.SPN524_TransSelectedGear;
22409 L4_MABX_DW.Unit_Delay_92_DSTATE = L4_MABX_B.SPN523_TransCurrentGear;
22410 L4_MABX_DW.Unit_Delay_93_DSTATE = L4_MABX_B.SPN526_TransActualGearRatio;
22411 L4_MABX_DW.Unit_Delay_94_DSTATE = L4_MABX_B.SFunction1_o4_ms;
22412 L4_MABX_DW.Unit_Delay_95_DSTATE = L4_MABX_B.SFunction1_o2_lx;
22413 L4_MABX_DW.Unit_Delay_96_DSTATE = L4_MABX_B.SFunction1_o5_lc;
22414 L4_MABX_DW.Unit_Delay_97_DSTATE = L4_MABX_B.SFunction1_o3_hl;
22415 L4_MABX_DW.Unit_Delay_98_DSTATE = L4_MABX_B.SPN514_NominalFrictionPercentTo;
22416 L4_MABX_DW.Unit_Delay_99_DSTATE = L4_MABX_B.SPN2978_EstEngParasiticLossesPe;
22417
22418 /* Update for UnitDelay: '<S635>/Unit_Delay2' */
22419 L4_MABX_DW.Unit_Delay2_DSTATE_h = L4_MABX_B.LogicalOperator2_f;
22420
22421 /* Update for UnitDelay: '<S635>/Unit_Delay1' incorporates:
22422 * Constant: '<S635>/Constant1'
22423 */
22424 L4_MABX_DW.Unit_Delay1_DSTATE_i = L4_MABX_P.Constant1_Value_hv;
22425
22426 /* Update for UnitDelay: '<S642>/Unit_Delay' */
22427 L4_MABX_DW.Unit_Delay_DSTATE_d1 = L4_MABX_B.LogicalOperator1_h;
22428
22429 /* Update for UnitDelay: '<S10>/Unit_Delay' incorporates:
22430 * Constant: '<S10>/Constant'
22431 */
22432 L4_MABX_DW.Unit_Delay_DSTATE_do = L4_MABX_P.Constant_Value_g5;
22433
22434 /* Update absolute time */
22435 /* The "clockTick0" counts the number of times the code of this task has
22436 * been executed. The absolute time is the multiplication of "clockTick0"
22437 * and "Timing.stepSize0". Size of "clockTick0" ensures timer will not
22438 * overflow during the application lifespan selected.
22439 * Timer of this task consists of two 32 bit unsigned integers.
22440 * The two integers represent the low bits Timing.clockTick0 and the high bits
22441 * Timing.clockTickH0. When the low bit overflows to 0, the high bits increment.
22442 */
22443 if (!(++L4_MABX_M->Timing.clockTick0)) {
22444 ++L4_MABX_M->Timing.clockTickH0;
22445 }
22446
22447 L4_MABX_M->Timing.t[0] = L4_MABX_M->Timing.clockTick0 *
22448 L4_MABX_M->Timing.stepSize0 + L4_MABX_M->Timing.clockTickH0 *
22449 L4_MABX_M->Timing.stepSize0 * 4294967296.0;
22450}
22451
22452/* Model output function for TID1 */
22453void L4_MABX_output1(void) /* Sample time: [0.02s, 0.0s] */
22454{
22455 int_T tid = 1;
22456 int32_T i;
22457 uint32_T q0;
22458 uint32_T qY;
22459 uint8_T tmp;
22460 real_T u0;
22461 real_T u1;
22462 real_T u2;
22463
22464 /* Outputs for Atomic SubSystem: '<S815>/CAN_TX_20ms' */
22465
22466 /* Switch: '<S981>/Switch1' incorporates:
22467 * Constant: '<S981>/Constant4'
22468 */
22469 if (L4_MABX_B.AutonomousOutputEnabled_f) {
22470 /* Product: '<S981>/Divide1' incorporates:
22471 * Constant: '<S981>/Constant2'
22472 */
22473 L4_MABX_B.XBRExternalAccelDemand_m = L4_MABX_B.BrakingPID_Y_m *
22474 L4_MABX_P.Constant2_Value_at;
22475 L4_MABX_B.XBRExternalAccelDemand = L4_MABX_B.XBRExternalAccelDemand_m;
22476 } else {
22477 L4_MABX_B.XBRExternalAccelDemand = L4_MABX_P.Constant4_Value_l;
22478 }
22479
22480 /* End of Switch: '<S981>/Switch1' */
22481
22482 /* MultiPortSwitch: '<S981>/Multiport Switch' incorporates:
22483 * Constant: '<S981>/Constant10'
22484 * Constant: '<S981>/Constant7'
22485 * Constant: '<S981>/Constant8'
22486 * Constant: '<S981>/Constant9'
22487 */
22488 switch ((int32_T)L4_MABX_B.BrakingControlActive_c) {
22489 case 0:
22490 L4_MABX_B.XBRPassThroughActive = L4_MABX_P.Constant10_Value_k;
22491 break;
22492
22493 case 1:
22494 L4_MABX_B.XBRPassThroughActive = L4_MABX_P.Constant7_Value_m;
22495 break;
22496
22497 case 2:
22498 L4_MABX_B.XBRPassThroughActive = L4_MABX_P.Constant8_Value_c;
22499 break;
22500
22501 default:
22502 L4_MABX_B.XBRPassThroughActive = L4_MABX_P.Constant9_Value_a;
22503 break;
22504 }
22505
22506 /* End of MultiPortSwitch: '<S981>/Multiport Switch' */
22507
22508 /* Outputs for Atomic SubSystem: '<S981>/If_Then_Else' */
22509
22510 /* Constant: '<S981>/XBRValueOverride' incorporates:
22511 * Constant: '<S981>/XBRControlMode'
22512 * Constant: '<S981>/XBRControlModeOVR'
22513 * Constant: '<S981>/XBREnduranceBrakeIntegrationMode'
22514 * Constant: '<S981>/XBREnduranceBrakeIntegrationModeOVR'
22515 * Constant: '<S981>/XBRExternalAccelDemandOVR'
22516 * Constant: '<S981>/XBRPassThroughActiveOVR'
22517 * Constant: '<S981>/XBRPassThroughEnabled'
22518 * Constant: '<S981>/XBRPassThroughEnabledOVR'
22519 * Constant: '<S981>/XBRPriority'
22520 * Constant: '<S981>/XBRPriorityOVR'
22521 * Constant: '<S981>/XBRUrgency'
22522 * Constant: '<S981>/XBRUrgencyOVR'
22523 */
22524 L4_MABX_If_Then_Else_a(L4_MABX_P.XBRValueOverride_Value,
22525 L4_MABX_P.XBRExternalAccelDemandOVR_Value,
22526 L4_MABX_P.XBREnduranceBrakeIntegrationMod, L4_MABX_P.XBRPriorityOVR_Value,
22527 L4_MABX_P.XBRControlModeOVR_Value, L4_MABX_P.XBRPassThroughActiveOVR_Value,
22528 L4_MABX_P.XBRUrgencyOVR_Value, L4_MABX_P.XBRPassThroughEnabledOVR_Value,
22529 L4_MABX_B.XBRExternalAccelDemand, L4_MABX_P.XBREnduranceBrakeIntegrationM_i,
22530 L4_MABX_P.XBRPriority_Value, L4_MABX_P.XBRControlMode_Value,
22531 L4_MABX_B.XBRPassThroughActive, L4_MABX_P.XBRUrgency_Value,
22532 L4_MABX_P.XBRPassThroughEnabled_Value, &L4_MABX_B.If_Then_Else_ad);
22533
22534 /* End of Outputs for SubSystem: '<S981>/If_Then_Else' */
22535
22536 /* DataTypeConversion: '<S984>/Data Type Conversion1' */
22537 L4_MABX_B.DataTypeConversion1_i = (real_T)
22538 L4_MABX_B.If_Then_Else_ad.XBREnduranceBrakeIntegrationMod;
22539
22540 /* DataTypeConversion: '<S984>/Data Type Conversion2' */
22541 L4_MABX_B.DataTypeConversion2_n = (real_T)
22542 L4_MABX_B.If_Then_Else_ad.XBRPriority;
22543
22544 /* DataTypeConversion: '<S984>/Data Type Conversion3' */
22545 L4_MABX_B.DataTypeConversion3_p = (real_T)
22546 L4_MABX_B.If_Then_Else_ad.XBRControlMode;
22547
22548 /* DataTypeConversion: '<S984>/Data Type Conversion4' */
22549 L4_MABX_B.DataTypeConversion4_j =
22550 L4_MABX_B.If_Then_Else_ad.XBRExternalAccelDemand;
22551
22552 /* DataTypeConversion: '<S984>/Data Type Conversion5' */
22553 L4_MABX_B.DataTypeConversion5_j = (real_T)
22554 L4_MABX_B.If_Then_Else_ad.XBRPassThroughActive;
22555
22556 /* DataTypeConversion: '<S984>/Data Type Conversion6' */
22557 L4_MABX_B.DataTypeConversion6_b = L4_MABX_B.If_Then_Else_ad.XBRUrgency;
22558
22559 /* DataTypeConversion: '<S984>/Data Type Conversion7' */
22560 L4_MABX_B.DataTypeConversion7_i =
22561 L4_MABX_B.If_Then_Else_ad.XBRPassThroughEnabled;
22562
22563 /* UnitDelay: '<S977>/Unit_Delay' */
22564 L4_MABX_B.Unit_Delay_l = L4_MABX_DW.Unit_Delay_DSTATE_bm;
22565
22566 /* Logic: '<S977>/Logical Operator8' */
22567 L4_MABX_B.LogicalOperator8_c = !L4_MABX_B.TmpRTBAtLogicalOperator8Inport1;
22568
22569 /* Logic: '<S977>/Logical Operator7' */
22570 L4_MABX_B.LogicalOperator7_f = (L4_MABX_B.Unit_Delay_l &&
22571 L4_MABX_B.LogicalOperator8_c);
22572
22573 /* Logic: '<S977>/Logical Operator1' */
22574 L4_MABX_B.LogicalOperator1_k = (L4_MABX_B.LogicalOperator7_f ||
22575 L4_MABX_B.TmpRTBAtLogicalOperator1Inport2);
22576
22577 /* DataTypeConversion: '<S977>/Data Type Conversion' incorporates:
22578 * Constant: '<S821>/CANT_PROPB_XBR_B3_CHANNEL_APV'
22579 */
22580 u0 = L4_MABX_P.CANT_PROPB_XBR_B3_CHANNEL_APV_V;
22581 if (u0 < 256.0) {
22582 if (u0 >= 0.0) {
22583 tmp = (uint8_T)u0;
22584 } else {
22585 tmp = 0U;
22586 }
22587 } else {
22588 tmp = MAX_uint8_T;
22589 }
22590
22591 L4_MABX_B.DataTypeConversion_dt = tmp;
22592
22593 /* End of DataTypeConversion: '<S977>/Data Type Conversion' */
22594
22595 /* S-Function (sfix_bitop): '<S982>/Operator' */
22596 L4_MABX_B.Operator_fz = (uint8_T)(L4_MABX_B.DataTypeConversion_dt &
22597 L4_MABX_P.Operator_BitMask_ay);
22598
22599 /* DataTypeConversion: '<S982>/DataType' */
22600 L4_MABX_B.DataType_ee = L4_MABX_B.Operator_fz;
22601
22602 /* DataTypeConversion: '<S977>/Data Type Conversion2' */
22603 L4_MABX_B.DataTypeConversion2_pg = (L4_MABX_B.DataType_ee != 0);
22604
22605 /* Logic: '<S977>/Logical Operator' */
22606 L4_MABX_B.LogicalOperator_c = (L4_MABX_B.LogicalOperator1_k &&
22607 L4_MABX_B.DataTypeConversion2_pg);
22608
22609 /* Outputs for Enabled SubSystem: '<S984>/PropB_XBR_B3' incorporates:
22610 * EnablePort: '<S985>/Enable'
22611 */
22612 if (L4_MABX_B.LogicalOperator_c) {
22613 /* S-Function (rti_commonblock): '<S985>/S-Function1' */
22614 /* This comment workarounds a code generation problem */
22615
22616 /* dSPACE RTICAN TX Message Block: "PropB_XBR_B3" Id:218038707 */
22617 {
22618 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
22619
22620 Float32 delayTime = 0.0;
22621
22622 /* ... Read status and timestamp info (previous message) */
22623 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]);
22624
22625 /* Convert timestamp */
22626 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->processed) {
22627 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->timestamp =
22628 rtk_dsts_time_to_simtime_convert
22629 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->timestamp);
22630 }
22631
22632 /* Messages with timestamp zero have been received in pause/stop state
22633 and must not be handled.
22634 */
22635 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->timestamp > 0.0) {
22636 L4_MABX_B.SFunction1_o1_pk = (real_T)
22637 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->processed;
22638 L4_MABX_B.SFunction1_o2_k = (real_T)
22639 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->timestamp;
22640 L4_MABX_B.SFunction1_o3_i = (real_T)
22641 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->deltatime;
22642 L4_MABX_B.SFunction1_o4_oh = (real_T)
22643 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->delaytime;
22644 }
22645
22646 /* ... Encode Simulink signals of TX and RM blocks*/
22647 {
22648 rtican_Signal_t CAN_Sgn;
22649
22650 /* ...... "SPN2920_ExternalAccelerationDemand" (0|16, standard signal, unsigned int, little endian) */
22651 /* Add or substract 0.5 in order to round to nearest integer */
22652 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion4_j -
22653 ( -15.687 ) ) / 0.00048828125 + 0.5);
22654 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
22655 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
22656 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte1;
22657
22658 /* ...... "SPN2915_XBREnduranceBrkIntegrationMode" (16|2, standard signal, unsigned int, little endian) */
22659 /* Add or substract 0.5 in order to round to nearest integer */
22660 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_i ) +
22661 0.5);
22662 CAN_Sgn.UnsignedSgn &= 0x00000003;
22663 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
22664
22665 /* ...... "SPN2915_XBRPriority" (18|2, standard signal, unsigned int, little endian) */
22666 /* Add or substract 0.5 in order to round to nearest integer */
22667 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion2_n ) +
22668 0.5);
22669 CAN_Sgn.UnsignedSgn &= 0x00000003;
22670 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
22671 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
22672
22673 /* ...... "SPN2916_XBRControlMode" (20|2, standard signal, unsigned int, little endian) */
22674 /* Add or substract 0.5 in order to round to nearest integer */
22675 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion3_p ) +
22676 0.5);
22677 CAN_Sgn.UnsignedSgn &= 0x00000003;
22678 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
22679 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
22680
22681 /* ...... "XBRPassThroughActive" (22|2, standard signal, unsigned int, little endian) */
22682 /* Add or substract 0.5 in order to round to nearest integer */
22683 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion5_j ) +
22684 0.5);
22685 CAN_Sgn.UnsignedSgn &= 0x00000003;
22686 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
22687 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
22688
22689 /* ...... "SPN4099_XBRUrgency" (24|8, standard signal, unsigned int, little endian) */
22690 /* Add or substract 0.5 in order to round to nearest integer */
22691 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion6_b - ( 0 )
22692 ) / 0.4 + 0.5);
22693 CAN_Sgn.UnsignedSgn &= 0x000000FF;
22694 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
22695
22696 /* ...... "XBRPassThroughEnable" (54|2, standard signal, unsigned int, little endian) */
22697 /* Add or substract 0.5 in order to round to nearest integer */
22698 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion7_i ) +
22699 0.5);
22700 CAN_Sgn.UnsignedSgn &= 0x00000003;
22701 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
22702 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
22703 }
22704
22705 /* mask unused bits with '1' */
22706 CAN_Msg[4] |= 0xFF;
22707 CAN_Msg[5] |= 0xFF;
22708 CAN_Msg[6] |= 0x3F;
22709 CAN_Msg[7] |= 0xFF;
22710
22711 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
22712 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3], 8,
22713 &(CAN_Msg[0]), delayTime);
22714 }
22715 }
22716
22717 /* End of Outputs for SubSystem: '<S984>/PropB_XBR_B3' */
22718
22719 /* RelationalOperator: '<S983>/Compare' incorporates:
22720 * Constant: '<S983>/Constant'
22721 */
22722 L4_MABX_B.Compare_o1 = (L4_MABX_B.If_Then_Else_ad.XBRPassThroughActive ==
22723 L4_MABX_P.CompareToConstant_const_j);
22724
22725 /* Saturate: '<S980>/Saturation' incorporates:
22726 * Constant: '<S980>/2C2_OR_VALUE_APV'
22727 */
22728 u0 = L4_MABX_P.uC2_OR_VALUE_APV_Value;
22729 u1 = L4_MABX_P.Saturation_LowerSat_bw;
22730 u2 = L4_MABX_P.Saturation_UpperSat_o5;
22731 if (u0 > u2) {
22732 L4_MABX_B.Saturation_m = u2;
22733 } else if (u0 < u1) {
22734 L4_MABX_B.Saturation_m = u1;
22735 } else {
22736 L4_MABX_B.Saturation_m = u0;
22737 }
22738
22739 /* End of Saturate: '<S980>/Saturation' */
22740
22741 /* Outputs for Atomic SubSystem: '<S980>/If_Then_Else1' */
22742
22743 /* Constant: '<S980>/F_2C2_OR_APV' */
22744 L4_MABX_If_Then_Else_g(L4_MABX_P.F_2C2_OR_APV_Value, L4_MABX_B.Saturation_m,
22745 L4_MABX_B.BrakingPID_Y_md, &L4_MABX_B.If_Then_Else1_dw);
22746
22747 /* End of Outputs for SubSystem: '<S980>/If_Then_Else1' */
22748
22749 /* Gain: '<S980>/Gain' */
22750 L4_MABX_B.Gain_h = L4_MABX_P.Gain_Gain_gc * L4_MABX_B.If_Then_Else1_dw.Switch;
22751
22752 /* Gain: '<S997>/Gain' */
22753 L4_MABX_B.Gain_d = L4_MABX_P.Gain_Gain_o * L4_MABX_B.Gain_h;
22754
22755 /* DataTypeConversion: '<S997>/Data Type Conversion2' */
22756 u0 = floor(L4_MABX_B.Gain_d);
22757 if (rtIsNaN(u0) || rtIsInf(u0)) {
22758 u0 = 0.0;
22759 } else {
22760 u0 = fmod(u0, 256.0);
22761 }
22762
22763 L4_MABX_B.DataTypeConversion2_d = (uint8_T)(u0 < 0.0 ? (int32_T)(uint8_T)
22764 -(int8_T)(uint8_T)-u0 : (int32_T)(uint8_T)u0);
22765
22766 /* End of DataTypeConversion: '<S997>/Data Type Conversion2' */
22767
22768 /* DataTypeConversion: '<S997>/Data Type Conversion3' incorporates:
22769 * Constant: '<S980>/BrkControlMode_Active'
22770 */
22771 u0 = floor(L4_MABX_P.BrkControlMode_Active_Value);
22772 if (rtIsNaN(u0) || rtIsInf(u0)) {
22773 u0 = 0.0;
22774 } else {
22775 u0 = fmod(u0, 256.0);
22776 }
22777
22778 L4_MABX_B.DataTypeConversion3_k = (uint8_T)(u0 < 0.0 ? (int32_T)(uint8_T)
22779 -(int8_T)(uint8_T)-u0 : (int32_T)(uint8_T)u0);
22780
22781 /* End of DataTypeConversion: '<S997>/Data Type Conversion3' */
22782
22783 /* S-Function (sfix_bitop): '<S997>/Bitwise Operator14' */
22784 L4_MABX_B.BitwiseOperator14 = (uint8_T)(L4_MABX_B.DataTypeConversion3_k &
22785 L4_MABX_P.BitwiseOperator14_BitMask);
22786
22787 /* DataTypeConversion: '<S997>/Data Type Conversion4' incorporates:
22788 * Constant: '<S980>/BrkControlPriority'
22789 */
22790 u0 = floor(L4_MABX_P.BrkControlPriority_Value);
22791 if (rtIsNaN(u0) || rtIsInf(u0)) {
22792 u0 = 0.0;
22793 } else {
22794 u0 = fmod(u0, 256.0);
22795 }
22796
22797 L4_MABX_B.DataTypeConversion4_p2 = (uint8_T)(u0 < 0.0 ? (int32_T)(uint8_T)
22798 -(int8_T)(uint8_T)-u0 : (int32_T)(uint8_T)u0);
22799
22800 /* End of DataTypeConversion: '<S997>/Data Type Conversion4' */
22801
22802 /* S-Function (sfix_bitop): '<S997>/Bitwise Operator1' */
22803 L4_MABX_B.BitwiseOperator1 = (uint8_T)(L4_MABX_B.DataTypeConversion4_p2 &
22804 L4_MABX_P.BitwiseOperator1_BitMask);
22805
22806 /* ArithShift: '<S997>/Shift_Arithmetic ' */
22807 L4_MABX_B.Shift_Arithmetic_j = (uint8_T)(L4_MABX_B.BitwiseOperator1 << 2);
22808
22809 /* DataTypeConversion: '<S997>/Data Type Conversion12' */
22810 L4_MABX_B.DataTypeConversion12_f = L4_MABX_B.Shift_Arithmetic_j;
22811
22812 /* DataTypeConversion: '<S997>/Data Type Conversion6' incorporates:
22813 * Constant: '<S997>/Constant2'
22814 */
22815 L4_MABX_B.DataTypeConversion6_g = L4_MABX_P.Constant2_Value_ky;
22816
22817 /* S-Function (sfix_bitop): '<S997>/Bitwise Operator17' */
22818 L4_MABX_B.BitwiseOperator17_i = (uint8_T)(L4_MABX_B.BitwiseOperator14 |
22819 L4_MABX_B.DataTypeConversion12_f | L4_MABX_B.DataTypeConversion6_g);
22820
22821 /* Gain: '<S997>/Gain1' incorporates:
22822 * Constant: '<S980>/BrkControl_RearAxlePressureProportioning'
22823 */
22824 L4_MABX_B.Gain1_f = L4_MABX_P.Gain1_Gain_f *
22825 L4_MABX_P.BrkControl_RearAxlePressureProp;
22826
22827 /* DataTypeConversion: '<S997>/Data Type Conversion11' */
22828 u0 = floor(L4_MABX_B.Gain1_f);
22829 if (rtIsNaN(u0) || rtIsInf(u0)) {
22830 u0 = 0.0;
22831 } else {
22832 u0 = fmod(u0, 256.0);
22833 }
22834
22835 L4_MABX_B.DataTypeConversion11_d = (uint8_T)(u0 < 0.0 ? (int32_T)(uint8_T)
22836 -(int8_T)(uint8_T)-u0 : (int32_T)(uint8_T)u0);
22837
22838 /* End of DataTypeConversion: '<S997>/Data Type Conversion11' */
22839
22840 /* Reshape: '<S1000>/Reshape' incorporates:
22841 * Constant: '<S1000>/Constant'
22842 */
22843 for (i = 0; i < 16; i++) {
22844 L4_MABX_B.Reshape_p[i] = L4_MABX_P.Repeating_Sequence_Stair_Out_er[i];
22845 }
22846
22847 /* End of Reshape: '<S1000>/Reshape' */
22848
22849 /* UnitDelay: '<S1000>/Unit_Delay' */
22850 L4_MABX_B.Unit_Delay_ke = L4_MABX_DW.Unit_Delay_DSTATE_bq;
22851
22852 /* UnitDelay: '<S1001>/Unit Delay' */
22853 L4_MABX_B.UnitDelay_e = L4_MABX_DW.UnitDelay_DSTATE_f;
22854
22855 /* Switch: '<S1004>/Switch1' incorporates:
22856 * Constant: '<S1001>/E'
22857 * Constant: '<S1001>/IV'
22858 * Switch: '<S1003>/Switch1'
22859 */
22860 if (L4_MABX_B.Unit_Delay_ke) {
22861 L4_MABX_B.Switch1_g = L4_MABX_P.IV_Value_m0;
22862 } else {
22863 if (L4_MABX_P.E_Value_nu) {
22864 /* Sum: '<S1001>/Subtract' incorporates:
22865 * Constant: '<S1001>/Constant'
22866 * Switch: '<S1003>/Switch1'
22867 */
22868 q0 = L4_MABX_P.Constant_Value_d3;
22869 qY = q0 + L4_MABX_B.UnitDelay_e;
22870 if (qY < q0) {
22871 qY = MAX_uint32_T;
22872 }
22873
22874 L4_MABX_B.Subtract_p = qY;
22875
22876 /* End of Sum: '<S1001>/Subtract' */
22877
22878 /* Switch: '<S1003>/Switch1' */
22879 L4_MABX_B.Switch1_l = L4_MABX_B.Subtract_p;
22880 } else {
22881 /* Switch: '<S1003>/Switch1' */
22882 L4_MABX_B.Switch1_l = L4_MABX_B.UnitDelay_e;
22883 }
22884
22885 L4_MABX_B.Switch1_g = L4_MABX_B.Switch1_l;
22886 }
22887
22888 /* End of Switch: '<S1004>/Switch1' */
22889
22890 /* Selector: '<S1000>/Selector' */
22891 L4_MABX_B.Selector_d = L4_MABX_B.Reshape_p[(int32_T)L4_MABX_B.Switch1_g - 1];
22892
22893 /* DataTypeConversion: '<S997>/Data Type Conversion10' */
22894 L4_MABX_B.DataTypeConversion10_m = L4_MABX_B.Selector_d;
22895
22896 /* S-Function (sfix_bitop): '<S997>/Bitwise Operator6' */
22897 L4_MABX_B.BitwiseOperator6 = (uint8_T)(L4_MABX_B.DataTypeConversion10_m &
22898 L4_MABX_P.BitwiseOperator6_BitMask);
22899
22900 /* DataTypeConversion: '<S996>/Data Type Conversion6' incorporates:
22901 * Constant: '<S996>/Priority'
22902 */
22903 L4_MABX_B.DataTypeConversion6_e = L4_MABX_P.Priority_Value_h;
22904
22905 /* ArithShift: '<S996>/Shift_Arithmetic 5' */
22906 L4_MABX_B.Shift_Arithmetic5 = L4_MABX_B.DataTypeConversion6_e << 26;
22907
22908 /* DataTypeConversion: '<S996>/Data Type Conversion7' incorporates:
22909 * Constant: '<S996>/ExtendedDataPage'
22910 */
22911 L4_MABX_B.DataTypeConversion7_p = L4_MABX_P.ExtendedDataPage_Value_e;
22912
22913 /* ArithShift: '<S996>/Shift_Arithmetic 6' */
22914 L4_MABX_B.Shift_Arithmetic6 = L4_MABX_B.DataTypeConversion7_p << 25;
22915
22916 /* DataTypeConversion: '<S996>/Data Type Conversion8' incorporates:
22917 * Constant: '<S996>/DataPage'
22918 */
22919 L4_MABX_B.DataTypeConversion8_n = L4_MABX_P.DataPage_Value_f;
22920
22921 /* ArithShift: '<S996>/Shift_Arithmetic 7' */
22922 L4_MABX_B.Shift_Arithmetic7 = L4_MABX_B.DataTypeConversion8_n << 24;
22923
22924 /* DataTypeConversion: '<S996>/Data Type Conversion9' incorporates:
22925 * Constant: '<S996>/PDUFormat'
22926 */
22927 L4_MABX_B.DataTypeConversion9_i = L4_MABX_P.PDUFormat_Value_d;
22928
22929 /* ArithShift: '<S996>/Shift_Arithmetic 8' */
22930 L4_MABX_B.Shift_Arithmetic8 = L4_MABX_B.DataTypeConversion9_i << 16;
22931
22932 /* DataTypeConversion: '<S996>/Data Type Conversion10' incorporates:
22933 * Constant: '<S996>/PDUSpecific'
22934 */
22935 L4_MABX_B.DataTypeConversion10_l = L4_MABX_P.PDUSpecific_Value_c;
22936
22937 /* ArithShift: '<S996>/Shift_Arithmetic 9' */
22938 L4_MABX_B.Shift_Arithmetic9 = L4_MABX_B.DataTypeConversion10_l << 8;
22939
22940 /* DataTypeConversion: '<S996>/Data Type Conversion11' incorporates:
22941 * Constant: '<S996>/SourceAddress'
22942 */
22943 L4_MABX_B.DataTypeConversion11_k = L4_MABX_P.SourceAddress_Value_l;
22944
22945 /* S-Function (sfix_bitop): '<S996>/Bitwise Operator17' */
22946 L4_MABX_B.BitwiseOperator17 = L4_MABX_B.Shift_Arithmetic5 |
22947 L4_MABX_B.Shift_Arithmetic6 | L4_MABX_B.Shift_Arithmetic7 |
22948 L4_MABX_B.Shift_Arithmetic8 | L4_MABX_B.Shift_Arithmetic9 |
22949 L4_MABX_B.DataTypeConversion11_k;
22950
22951 /* DataTypeConversion: '<S997>/Data Type Conversion7' */
22952 L4_MABX_B.DataTypeConversion7_m = L4_MABX_B.BitwiseOperator17;
22953
22954 /* S-Function (sfix_bitop): '<S997>/Bitwise Operator2' */
22955 L4_MABX_B.BitwiseOperator2 = L4_MABX_B.DataTypeConversion7_m &
22956 L4_MABX_P.BitwiseOperator2_BitMask;
22957
22958 /* S-Function (sfix_bitop): '<S997>/Bitwise Operator3' */
22959 L4_MABX_B.BitwiseOperator3 = L4_MABX_B.DataTypeConversion7_m &
22960 L4_MABX_P.BitwiseOperator3_BitMask;
22961
22962 /* ArithShift: '<S997>/Shift_Arithmetic 3' */
22963 L4_MABX_B.Shift_Arithmetic3_j = L4_MABX_B.BitwiseOperator3 >> 8;
22964
22965 /* DataTypeConversion: '<S997>/Data Type Conversion5' */
22966 L4_MABX_B.DataTypeConversion5_g = (uint8_T)L4_MABX_B.Shift_Arithmetic3_j;
22967
22968 /* S-Function (sfix_bitop): '<S997>/Bitwise Operator4' */
22969 L4_MABX_B.BitwiseOperator4 = L4_MABX_B.DataTypeConversion7_m &
22970 L4_MABX_P.BitwiseOperator4_BitMask;
22971
22972 /* ArithShift: '<S997>/Shift_Arithmetic 4' */
22973 L4_MABX_B.Shift_Arithmetic4_m = L4_MABX_B.BitwiseOperator4 >> 16;
22974
22975 /* DataTypeConversion: '<S997>/Data Type Conversion8' */
22976 L4_MABX_B.DataTypeConversion8_et = (uint8_T)L4_MABX_B.Shift_Arithmetic4_m;
22977
22978 /* S-Function (sfix_bitop): '<S997>/Bitwise Operator5' */
22979 L4_MABX_B.BitwiseOperator5 = L4_MABX_B.DataTypeConversion7_m &
22980 L4_MABX_P.BitwiseOperator5_BitMask;
22981
22982 /* ArithShift: '<S997>/Shift_Arithmetic 5' */
22983 L4_MABX_B.Shift_Arithmetic5_g = L4_MABX_B.BitwiseOperator5 >> 24;
22984
22985 /* DataTypeConversion: '<S997>/Data Type Conversion9' */
22986 L4_MABX_B.DataTypeConversion9_j = (uint8_T)L4_MABX_B.Shift_Arithmetic5_g;
22987
22988 /* Sum: '<S997>/Add2' incorporates:
22989 * Constant: '<S997>/Constant'
22990 * Constant: '<S997>/Constant1'
22991 * Constant: '<S997>/Constant3'
22992 * Constant: '<S997>/Constant4'
22993 */
22994 L4_MABX_B.Add2_c = (uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)
22995 (uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)
22996 ((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)
22997 (uint8_T)((uint32_T)L4_MABX_B.DataTypeConversion2_d +
22998 L4_MABX_B.BitwiseOperator17_i) + L4_MABX_B.DataTypeConversion11_d)
22999 + L4_MABX_P.Constant3_Value_pu) + L4_MABX_P.Constant4_Value_ka) +
23000 L4_MABX_P.Constant_Value_na) + L4_MABX_P.Constant1_Value_p5) + (uint8_T)
23001 L4_MABX_B.BitwiseOperator2) + L4_MABX_B.DataTypeConversion5_g) +
23002 L4_MABX_B.DataTypeConversion8_et) + L4_MABX_B.DataTypeConversion9_j) +
23003 L4_MABX_B.BitwiseOperator6);
23004
23005 /* ArithShift: '<S997>/Shift_Arithmetic 6' */
23006 L4_MABX_B.Shift_Arithmetic6_l = (uint8_T)((uint32_T)L4_MABX_B.Add2_c >> 4);
23007
23008 /* Sum: '<S997>/Add3' */
23009 L4_MABX_B.Add3_l = (uint8_T)((uint32_T)L4_MABX_B.Shift_Arithmetic6_l +
23010 L4_MABX_B.Add2_c);
23011
23012 /* S-Function (sfix_bitop): '<S997>/Bitwise Operator8' */
23013 L4_MABX_B.BitwiseOperator8 = (uint8_T)(L4_MABX_B.Add3_l &
23014 L4_MABX_P.BitwiseOperator8_BitMask);
23015
23016 /* ArithShift: '<S997>/Shift_Arithmetic 7' */
23017 L4_MABX_B.Shift_Arithmetic7_l = (uint8_T)(L4_MABX_B.BitwiseOperator8 << 4);
23018
23019 /* S-Function (sfix_bitop): '<S997>/Bitwise Operator7' */
23020 L4_MABX_B.BitwiseOperator7 = (uint8_T)(L4_MABX_B.BitwiseOperator6 |
23021 L4_MABX_B.Shift_Arithmetic7_l);
23022
23023 /* DataTypeConversion: '<S978>/Data Type Conversion1' incorporates:
23024 * Constant: '<S997>/Constant'
23025 * Constant: '<S997>/Constant1'
23026 * Constant: '<S997>/Constant3'
23027 * Constant: '<S997>/Constant4'
23028 */
23029 L4_MABX_B.DataTypeConversion1_d[0] = L4_MABX_B.DataTypeConversion2_d;
23030 L4_MABX_B.DataTypeConversion1_d[1] = L4_MABX_B.BitwiseOperator17_i;
23031 L4_MABX_B.DataTypeConversion1_d[2] = L4_MABX_B.DataTypeConversion11_d;
23032 L4_MABX_B.DataTypeConversion1_d[3] = L4_MABX_P.Constant3_Value_pu;
23033 L4_MABX_B.DataTypeConversion1_d[4] = L4_MABX_P.Constant4_Value_ka;
23034 L4_MABX_B.DataTypeConversion1_d[5] = L4_MABX_P.Constant_Value_na;
23035 L4_MABX_B.DataTypeConversion1_d[6] = L4_MABX_P.Constant1_Value_p5;
23036 L4_MABX_B.DataTypeConversion1_d[7] = L4_MABX_B.BitwiseOperator7;
23037
23038 /* Outputs for Enabled SubSystem: '<S986>/PropB_Bendix_2C2_XPR' incorporates:
23039 * EnablePort: '<S987>/Enable'
23040 */
23041 /* Constant: '<S980>/CPV' */
23042 if (L4_MABX_P.CPV_Value_ay) {
23043 /* S-Function (rti_commonblock): '<S987>/S-Function1' */
23044 /* This comment workarounds a code generation problem */
23045
23046 /* dSPACE RTICAN TX Message Block: "PropB_Bendix_2C2_XPR" Id:218060389 */
23047 {
23048 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
23049
23050 Float32 delayTime = 0.0;
23051
23052 /* ... Read status and timestamp info (previous message) */
23053 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]);
23054
23055 /* Convert timestamp */
23056 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->processed) {
23057 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->timestamp =
23058 rtk_dsts_time_to_simtime_convert
23059 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->timestamp);
23060 }
23061
23062 /* Messages with timestamp zero have been received in pause/stop state
23063 and must not be handled.
23064 */
23065 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->timestamp > 0.0) {
23066 L4_MABX_B.SFunction1_o1_l = (real_T)
23067 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->processed;
23068 L4_MABX_B.SFunction1_o2_bv = (real_T)
23069 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->timestamp;
23070 L4_MABX_B.SFunction1_o3_n = (real_T)
23071 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->deltatime;
23072 L4_MABX_B.SFunction1_o4_i = (real_T)
23073 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->delaytime;
23074 }
23075
23076 /* ... Encode Simulink signals of TX and RM blocks*/
23077 {
23078 rtican_Signal_t CAN_Sgn;
23079
23080 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
23081 /* Add or substract 0.5 in order to round to nearest integer */
23082 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[0] ) +
23083 0.5);
23084 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23085 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23086
23087 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
23088 /* Add or substract 0.5 in order to round to nearest integer */
23089 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[1] ) +
23090 0.5);
23091 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23092 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
23093
23094 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
23095 /* Add or substract 0.5 in order to round to nearest integer */
23096 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[2] ) +
23097 0.5);
23098 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23099 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
23100
23101 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
23102 /* Add or substract 0.5 in order to round to nearest integer */
23103 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[3] ) +
23104 0.5);
23105 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23106 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
23107
23108 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
23109 /* Add or substract 0.5 in order to round to nearest integer */
23110 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[4] ) +
23111 0.5);
23112 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23113 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
23114
23115 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
23116 /* Add or substract 0.5 in order to round to nearest integer */
23117 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[5] ) +
23118 0.5);
23119 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23120 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
23121
23122 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
23123 /* Add or substract 0.5 in order to round to nearest integer */
23124 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[6] ) +
23125 0.5);
23126 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23127 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
23128
23129 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
23130 /* Add or substract 0.5 in order to round to nearest integer */
23131 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[7] ) +
23132 0.5);
23133 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23134 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
23135 }
23136
23137 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
23138 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665], 8,
23139 &(CAN_Msg[0]), delayTime);
23140 }
23141 }
23142
23143 /* End of Constant: '<S980>/CPV' */
23144 /* End of Outputs for SubSystem: '<S986>/PropB_Bendix_2C2_XPR' */
23145
23146 /* DataTypeConversion: '<S994>/Data Type Conversion' */
23147 L4_MABX_B.DataTypeConversion_ge = L4_MABX_B.FrontAxleSpeed_d;
23148
23149 /* DataTypeConversion: '<S994>/Data Type Conversion1' */
23150 L4_MABX_B.DataTypeConversion1_k = L4_MABX_B.SPN1807_SteeringWheelAngle_m;
23151
23152 /* DataTypeConversion: '<S994>/Data Type Conversion2' */
23153 L4_MABX_B.DataTypeConversion2_oz = L4_MABX_B.SPN1808_YawRate_j;
23154
23155 /* DataTypeConversion: '<S994>/Data Type Conversion3' */
23156 L4_MABX_B.DataTypeConversion3_c = L4_MABX_B.SPN1810_LongitudinalAccelerat_f;
23157
23158 /* DataTypeConversion: '<S979>/Data Type Conversion' incorporates:
23159 * Constant: '<S821>/CANT_STD_ODOMETRY_CHANNEL_APV'
23160 */
23161 L4_MABX_B.DataTypeConversion_b0 = (uint8_T)
23162 L4_MABX_P.CANT_STD_ODOMETRY_CHANNEL_APV_V;
23163
23164 /* S-Function (sfix_bitop): '<S993>/Operator' */
23165 L4_MABX_B.Operator_j0 = (uint8_T)(L4_MABX_B.DataTypeConversion_b0 &
23166 L4_MABX_P.Operator_BitMask_am);
23167
23168 /* DataTypeConversion: '<S993>/DataType' */
23169 L4_MABX_B.DataType = L4_MABX_B.Operator_j0;
23170
23171 /* ArithShift: '<S979>/Shift_Arithmetic 4' */
23172 L4_MABX_B.Shift_Arithmetic4 = ldexp(L4_MABX_B.DataType, (-5));
23173
23174 /* DataTypeConversion: '<S979>/Data Type Conversion7' */
23175 L4_MABX_B.DataTypeConversion7_h5 = (L4_MABX_B.Shift_Arithmetic4 != 0.0);
23176
23177 /* Outputs for Enabled SubSystem: '<S994>/Std_OdometryData' incorporates:
23178 * EnablePort: '<S995>/Enable'
23179 */
23180 if (L4_MABX_B.DataTypeConversion7_h5) {
23181 /* S-Function (rti_commonblock): '<S995>/S-Function1' */
23182 /* This comment workarounds a code generation problem */
23183
23184 /* dSPACE RTICAN TX Message Block: "Std_OdometryData" Id:10 */
23185 {
23186 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
23187
23188 Float32 delayTime = 0.0;
23189
23190 /* ... Read status and timestamp info (previous message) */
23191 can_tp1_msg_read(can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]);
23192
23193 /* Convert timestamp */
23194 if (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->processed) {
23195 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->timestamp =
23196 rtk_dsts_time_to_simtime_convert
23197 (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->timestamp);
23198 }
23199
23200 /* Messages with timestamp zero have been received in pause/stop state
23201 and must not be handled.
23202 */
23203 if (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->timestamp > 0.0) {
23204 L4_MABX_B.SFunction1_o1_i = (real_T)
23205 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->processed;
23206 L4_MABX_B.SFunction1_o2_ml = (real_T)
23207 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->timestamp;
23208 L4_MABX_B.SFunction1_o3_a = (real_T)
23209 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->deltatime;
23210 L4_MABX_B.SFunction1_o4_o = (real_T)
23211 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->delaytime;
23212 }
23213
23214 /* ... Encode Simulink signals of TX and RM blocks*/
23215 {
23216 rtican_Signal_t CAN_Sgn;
23217
23218 /* ...... "SPN904_FrontAxleSpeed" (0|16, standard signal, unsigned int, little endian) */
23219 /* Add or substract 0.5 in order to round to nearest integer */
23220 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_ge - ( 0 )
23221 ) / 0.00390625 + 0.5);
23222 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
23223 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23224 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte1;
23225
23226 /* ...... "SPN1807_SteeringWheelAngle" (16|16, standard signal, unsigned int, little endian) */
23227 /* Add or substract 0.5 in order to round to nearest integer */
23228 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_k -
23229 ( -31.374 ) ) / 0.0009765625 + 0.5);
23230 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
23231 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
23232 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte1;
23233
23234 /* ...... "SPN1808_YawRate" (32|16, standard signal, unsigned int, little endian) */
23235 /* Add or substract 0.5 in order to round to nearest integer */
23236 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion2_oz -
23237 ( -3.92 ) ) / 0.0001220703125 + 0.5);
23238 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
23239 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
23240 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte1;
23241
23242 /* ...... "SPN1810_LongitudinalAcceleration" (48|8, standard signal, unsigned int, little endian) */
23243 /* Add or substract 0.5 in order to round to nearest integer */
23244 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion3_c -
23245 ( -12.5 ) ) / 0.1 + 0.5);
23246 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23247 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
23248 }
23249
23250 /* mask unused bits with '1' */
23251 CAN_Msg[7] |= 0xFF;
23252
23253 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
23254 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA], 8, &(CAN_Msg[0]),
23255 delayTime);
23256 }
23257 }
23258
23259 /* End of Outputs for SubSystem: '<S994>/Std_OdometryData' */
23260
23261 /* S-Function (sfix_bitop): '<S988>/Operator' */
23262 L4_MABX_B.Operator_mw = (uint8_T)(L4_MABX_B.DataTypeConversion_b0 &
23263 L4_MABX_P.Operator_BitMask_p2);
23264
23265 /* DataTypeConversion: '<S988>/DataType' */
23266 L4_MABX_B.DataType_je = L4_MABX_B.Operator_mw;
23267
23268 /* S-Function (sfix_bitop): '<S989>/Operator' */
23269 L4_MABX_B.Operator_izg = (uint8_T)(L4_MABX_B.DataTypeConversion_b0 &
23270 L4_MABX_P.Operator_BitMask_ns);
23271
23272 /* DataTypeConversion: '<S989>/DataType' */
23273 L4_MABX_B.DataType_p = L4_MABX_B.Operator_izg;
23274
23275 /* S-Function (sfix_bitop): '<S990>/Operator' */
23276 L4_MABX_B.Operator_g = (uint8_T)(L4_MABX_B.DataTypeConversion_b0 &
23277 L4_MABX_P.Operator_BitMask_na);
23278
23279 /* DataTypeConversion: '<S990>/DataType' */
23280 L4_MABX_B.DataType_k = L4_MABX_B.Operator_g;
23281
23282 /* S-Function (sfix_bitop): '<S991>/Operator' */
23283 L4_MABX_B.Operator_fu = (uint8_T)(L4_MABX_B.DataTypeConversion_b0 &
23284 L4_MABX_P.Operator_BitMask_au);
23285
23286 /* DataTypeConversion: '<S991>/DataType' */
23287 L4_MABX_B.DataType_a = L4_MABX_B.Operator_fu;
23288
23289 /* S-Function (sfix_bitop): '<S992>/Operator' */
23290 L4_MABX_B.Operator_du = (uint8_T)(L4_MABX_B.DataTypeConversion_b0 &
23291 L4_MABX_P.Operator_BitMask_oi);
23292
23293 /* DataTypeConversion: '<S992>/DataType' */
23294 L4_MABX_B.DataType_b = L4_MABX_B.Operator_du;
23295
23296 /* DataTypeConversion: '<S979>/Data Type Conversion2' */
23297 L4_MABX_B.DataTypeConversion2_ae = (L4_MABX_B.DataType_je != 0);
23298
23299 /* ArithShift: '<S979>/Shift_Arithmetic ' */
23300 L4_MABX_B.Shift_Arithmetic = ldexp(L4_MABX_B.DataType_p, (-1));
23301
23302 /* DataTypeConversion: '<S979>/Data Type Conversion3' */
23303 L4_MABX_B.DataTypeConversion3_e = (L4_MABX_B.Shift_Arithmetic != 0.0);
23304
23305 /* ArithShift: '<S979>/Shift_Arithmetic 1' */
23306 L4_MABX_B.Shift_Arithmetic1 = ldexp(L4_MABX_B.DataType_k, (-2));
23307
23308 /* DataTypeConversion: '<S979>/Data Type Conversion4' */
23309 L4_MABX_B.DataTypeConversion4_ptz = (L4_MABX_B.Shift_Arithmetic1 != 0.0);
23310
23311 /* ArithShift: '<S979>/Shift_Arithmetic 2' */
23312 L4_MABX_B.Shift_Arithmetic2 = ldexp(L4_MABX_B.DataType_a, (-3));
23313
23314 /* DataTypeConversion: '<S979>/Data Type Conversion5' */
23315 L4_MABX_B.DataTypeConversion5_jf = (L4_MABX_B.Shift_Arithmetic2 != 0.0);
23316
23317 /* ArithShift: '<S979>/Shift_Arithmetic 3' */
23318 L4_MABX_B.Shift_Arithmetic3 = ldexp(L4_MABX_B.DataType_b, (-4));
23319
23320 /* DataTypeConversion: '<S979>/Data Type Conversion6' */
23321 L4_MABX_B.DataTypeConversion6_e2 = (L4_MABX_B.Shift_Arithmetic3 != 0.0);
23322
23323 /* RelationalOperator: '<S1002>/Operator' */
23324 L4_MABX_B.Operator_mo = (L4_MABX_B.Switch1_g == L4_MABX_B.Width_f);
23325
23326 /* Lookup_n-D: '<S981>/DECEL_GOV_XBR_URGENCY_MPV' */
23327 L4_MABX_B.XBRUrgency = look1_binlcapw(L4_MABX_B.XBRExternalAccelDemand,
23328 L4_MABX_P.DECEL_GOV_XBR_URGENCY_MPV_bp01D,
23329 L4_MABX_P.DECEL_GOV_XBR_URGENCY_MPV_table, 7U);
23330
23331 /* End of Outputs for SubSystem: '<S815>/CAN_TX_20ms' */
23332
23333 /* Outputs for Atomic SubSystem: '<S65>/Task_20ms' */
23334 /* RelationalOperator: '<S382>/CheckHDOP' incorporates:
23335 * Constant: '<S382>/MaximumGoodHDOP'
23336 */
23337 L4_MABX_B.CheckHDOP = (L4_MABX_B.HDOP__f <= L4_MABX_P.MaximumGoodHDOP_Value);
23338
23339 /* Gain: '<S382>/kph2mps' */
23340 L4_MABX_B.kph2mps = L4_MABX_P.kph2mps_Gain_l * L4_MABX_B.FrontAxleSpeed_dv;
23341
23342 /* Product: '<S382>/Product' incorporates:
23343 * Constant: '<S382>/lookAheadTime'
23344 */
23345 L4_MABX_B.Product_c = L4_MABX_B.kph2mps * L4_MABX_P.lookAheadTime_Value;
23346
23347 /* Gain: '<S382>/kph2mps1' */
23348 L4_MABX_B.kph2mps1 = L4_MABX_P.kph2mps1_Gain * L4_MABX_B.FrontAxleSpeed_dvq;
23349
23350 /* Product: '<S382>/Product1' incorporates:
23351 * Constant: '<S382>/lookAheadTime1'
23352 */
23353 L4_MABX_B.Product1_h = L4_MABX_B.kph2mps1 * L4_MABX_P.lookAheadTime1_Value;
23354
23355 /* UnitDelay: '<S382>/Unit Delay1' */
23356 L4_MABX_B.UnitDelay1 = L4_MABX_DW.UnitDelay1_DSTATE;
23357
23358 /* Constant: '<S383>/InitialHeading' */
23359 L4_MABX_B.InitialHeading = L4_MABX_P.InitialHeading_Value;
23360
23361 /* Constant: '<S383>/InitialPosition' */
23362 L4_MABX_B.InitialPosition = L4_MABX_P.InitialPosition_Value;
23363
23364 /* Constant: '<S383>/InitialXPosition' */
23365 L4_MABX_B.InitialXPosition = L4_MABX_P.InitialXPosition_Value;
23366
23367 /* Constant: '<S383>/InitialYPosition' */
23368 L4_MABX_B.InitialYPosition = L4_MABX_P.InitialYPosition_Value;
23369
23370 /* Gain: '<S71>/kph2ms' */
23371 L4_MABX_B.kph2ms = L4_MABX_P.kph2ms_Gain * L4_MABX_B.FrontAxleSpeed_dvqf;
23372
23373 /* DiscreteIntegrator: '<S383>/LongitudnalPosition' incorporates:
23374 * Constant: '<S382>/Constant'
23375 */
23376 if ((L4_MABX_P.Constant_Value_p > 0.0) &&
23377 (L4_MABX_DW.LongitudnalPosition_PrevResetSt <= 0)) {
23378 L4_MABX_DW.LongitudnalPosition_DSTATE = L4_MABX_B.InitialPosition;
23379 }
23380
23381 L4_MABX_B.LongitudnalPosition = L4_MABX_P.LongitudnalPosition_gainval *
23382 L4_MABX_B.kph2ms + L4_MABX_DW.LongitudnalPosition_DSTATE;
23383
23384 /* End of DiscreteIntegrator: '<S383>/LongitudnalPosition' */
23385
23386 /* Trigonometry: '<S383>/Trigonometric Function' */
23387 L4_MABX_B.TrigonometricFunction = sin(L4_MABX_B.kph2ms);
23388
23389 /* Trigonometry: '<S383>/Trigonometric Function1' */
23390 L4_MABX_B.TrigonometricFunction1 = cos(L4_MABX_B.kph2ms);
23391
23392 /* DiscreteIntegrator: '<S383>/VehHeading' incorporates:
23393 * Constant: '<S383>/reset'
23394 */
23395 if ((L4_MABX_P.reset_Value > 0.0) && (L4_MABX_DW.VehHeading_PrevResetState <=
23396 0)) {
23397 L4_MABX_DW.VehHeading_DSTATE = L4_MABX_B.InitialHeading;
23398 }
23399
23400 L4_MABX_B.VehHeading = L4_MABX_P.VehHeading_gainval *
23401 L4_MABX_B.TmpRTBAtVehHeadingInport1 + L4_MABX_DW.VehHeading_DSTATE;
23402
23403 /* End of DiscreteIntegrator: '<S383>/VehHeading' */
23404
23405 /* DiscreteIntegrator: '<S383>/XPosition' incorporates:
23406 * Constant: '<S383>/reset'
23407 */
23408 if ((L4_MABX_P.reset_Value > 0.0) && (L4_MABX_DW.XPosition_PrevResetState <= 0))
23409 {
23410 L4_MABX_DW.XPosition_DSTATE = L4_MABX_B.InitialXPosition;
23411 }
23412
23413 L4_MABX_B.XPosition = L4_MABX_P.XPosition_gainval *
23414 L4_MABX_B.TrigonometricFunction1 + L4_MABX_DW.XPosition_DSTATE;
23415
23416 /* End of DiscreteIntegrator: '<S383>/XPosition' */
23417
23418 /* DiscreteIntegrator: '<S383>/YPosition' incorporates:
23419 * Constant: '<S383>/reset'
23420 */
23421 if ((L4_MABX_P.reset_Value > 0.0) && (L4_MABX_DW.YPosition_PrevResetState <= 0))
23422 {
23423 L4_MABX_DW.YPosition_DSTATE = L4_MABX_B.InitialYPosition;
23424 }
23425
23426 L4_MABX_B.YPosition = L4_MABX_P.YPosition_gainval *
23427 L4_MABX_B.TrigonometricFunction + L4_MABX_DW.YPosition_DSTATE;
23428
23429 /* End of DiscreteIntegrator: '<S383>/YPosition' */
23430 /* End of Outputs for SubSystem: '<S65>/Task_20ms' */
23431
23432 /* UnitDelay: '<S3>/Unit_Delay' */
23433 L4_MABX_B.S = L4_MABX_DW.Unit_Delay_48_DSTATE;
23434 L4_MABX_B.B = L4_MABX_DW.Unit_Delay_49_DSTATE;
23435 L4_MABX_B.X = L4_MABX_DW.Unit_Delay_50_DSTATE;
23436 L4_MABX_B.Y = L4_MABX_DW.Unit_Delay_51_DSTATE;
23437 L4_MABX_B.pathCurveOffset = L4_MABX_DW.Unit_Delay_52_DSTATE;
23438 L4_MABX_B.S_j = L4_MABX_DW.Unit_Delay_53_DSTATE;
23439 L4_MABX_B.distanceSpdTarget = L4_MABX_DW.Unit_Delay_54_DSTATE;
23440 L4_MABX_B.state = L4_MABX_DW.Unit_Delay_55_DSTATE;
23441 L4_MABX_B.lastWayPointIdx = L4_MABX_DW.Unit_Delay_56_DSTATE;
23442 L4_MABX_B.crossed = L4_MABX_DW.Unit_Delay_57_DSTATE;
23443 L4_MABX_B.minimumDist = L4_MABX_DW.Unit_Delay_58_DSTATE;
23444 L4_MABX_B.SrefOnthisPath = L4_MABX_DW.Unit_Delay_59_DSTATE;
23445 L4_MABX_B.StartDist = L4_MABX_DW.Unit_Delay_60_DSTATE;
23446 L4_MABX_B.minDistIdx = L4_MABX_DW.Unit_Delay_61_DSTATE;
23447 L4_MABX_B.pathS = L4_MABX_DW.Unit_Delay_62_DSTATE;
23448 L4_MABX_B.pathLat = L4_MABX_DW.Unit_Delay_63_DSTATE;
23449 L4_MABX_B.pathLong = L4_MABX_DW.Unit_Delay_64_DSTATE;
23450 L4_MABX_B.pathSteeringAngle = L4_MABX_DW.Unit_Delay_65_DSTATE;
23451 L4_MABX_B.pathSpdLimit = L4_MABX_DW.Unit_Delay_66_DSTATE;
23452 L4_MABX_B.distance = L4_MABX_DW.Unit_Delay_67_DSTATE;
23453 L4_MABX_B.idx = L4_MABX_DW.Unit_Delay_68_DSTATE;
23454 L4_MABX_B.wpidx = L4_MABX_DW.Unit_Delay_69_DSTATE;
23455 L4_MABX_B.pathOffset = L4_MABX_DW.Unit_Delay_70_DSTATE;
23456 L4_MABX_B.sRefDistance = L4_MABX_DW.Unit_Delay_71_DSTATE;
23457 L4_MABX_B.refDistance = L4_MABX_DW.Unit_Delay_72_DSTATE;
23458 L4_MABX_B.wpIdx = L4_MABX_DW.Unit_Delay_73_DSTATE;
23459 L4_MABX_B.previewSteeringAngle_l = L4_MABX_DW.Unit_Delay_74_DSTATE;
23460 L4_MABX_B.desHeading = L4_MABX_DW.Unit_Delay_75_DSTATE;
23461 L4_MABX_B.actPreviewDist = L4_MABX_DW.Unit_Delay_76_DSTATE;
23462 L4_MABX_B.desPreviewDist = L4_MABX_DW.Unit_Delay_77_DSTATE;
23463 L4_MABX_B.mappingSearchCase = L4_MABX_DW.Unit_Delay_78_DSTATE;
23464
23465 /* user code (Output function Trailer for TID1) */
23466
23467 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
23468 /* EventChannel: 0 */
23469 if (tid == 0) {
23470 DSXCP_service(0);
23471 }
23472
23473 /* If subsystem generates rate grouping Output functions,
23474 * when tid is used in Output function for one rate,
23475 * all Output functions include tid as a local variable.
23476 * As result, some Output functions may have unused tid.
23477 */
23478 UNUSED_PARAMETER(tid);
23479}
23480
23481/* Model update function for TID1 */
23482void L4_MABX_update1(void) /* Sample time: [0.02s, 0.0s] */
23483{
23484 /* Update for Atomic SubSystem: '<S65>/Task_10ms' */
23485 /* Update for RateTransition: '<S81>/TmpRTBAtSignal Conversion1Inport1' incorporates:
23486 * Constant: '<S382>/Constant2'
23487 */
23488 L4_MABX_DW.TmpRTBAtSignalConversion1Inport = L4_MABX_P.Constant2_Value_a;
23489
23490 /* Update for RateTransition: '<S81>/TmpRTBAtSignal Conversion3Inport1' incorporates:
23491 * Constant: '<S382>/Constant13'
23492 */
23493 L4_MABX_DW.TmpRTBAtSignalConversion3Inport = L4_MABX_P.Constant13_Value;
23494
23495 /* Update for RateTransition: '<S81>/TmpRTBAtSignal Conversion2Inport1' incorporates:
23496 * Constant: '<S382>/Constant14'
23497 */
23498 L4_MABX_DW.TmpRTBAtSignalConversion2Inport = L4_MABX_P.Constant14_Value;
23499
23500 /* Update for RateTransition: '<S80>/TmpRTBAtrad2deg1Inport1' incorporates:
23501 * Constant: '<S382>/Constant17'
23502 */
23503 L4_MABX_DW.TmpRTBAtrad2deg1Inport1_Buffer0 = L4_MABX_P.Constant17_Value;
23504
23505 /* Update for RateTransition: '<S80>/TmpRTBAtsignCurveOffsetInport1' incorporates:
23506 * Constant: '<S382>/Constant1'
23507 */
23508 L4_MABX_DW.TmpRTBAtsignCurveOffsetInport1_ = L4_MABX_P.Constant1_Value_g;
23509
23510 /* Update for RateTransition: '<S277>/TmpRTBAtAdd2Inport2' incorporates:
23511 * Constant: '<S382>/Constant18'
23512 */
23513 L4_MABX_DW.TmpRTBAtAdd2Inport2_Buffer0 = L4_MABX_P.Constant18_Value;
23514
23515 /* End of Update for SubSystem: '<S65>/Task_10ms' */
23516
23517 /* Update for Atomic SubSystem: '<S815>/CAN_TX_20ms' */
23518
23519 /* Update for UnitDelay: '<S977>/Unit_Delay' */
23520 L4_MABX_DW.Unit_Delay_DSTATE_bm = L4_MABX_B.TmpRTBAtUnit_DelayInport1;
23521
23522 /* Update for UnitDelay: '<S1000>/Unit_Delay' */
23523 L4_MABX_DW.Unit_Delay_DSTATE_bq = L4_MABX_B.Operator_mo;
23524
23525 /* Update for UnitDelay: '<S1001>/Unit Delay' */
23526 L4_MABX_DW.UnitDelay_DSTATE_f = L4_MABX_B.Switch1_g;
23527
23528 /* End of Update for SubSystem: '<S815>/CAN_TX_20ms' */
23529
23530 /* Update for Atomic SubSystem: '<S65>/Task_20ms' */
23531 /* Update for UnitDelay: '<S382>/Unit Delay1' */
23532 L4_MABX_DW.UnitDelay1_DSTATE = L4_MABX_B.LongitudnalPosition;
23533
23534 /* Update for DiscreteIntegrator: '<S383>/LongitudnalPosition' incorporates:
23535 * Constant: '<S382>/Constant'
23536 */
23537 L4_MABX_DW.LongitudnalPosition_DSTATE = L4_MABX_P.LongitudnalPosition_gainval *
23538 L4_MABX_B.kph2ms + L4_MABX_B.LongitudnalPosition;
23539 if (L4_MABX_P.Constant_Value_p > 0.0) {
23540 L4_MABX_DW.LongitudnalPosition_PrevResetSt = 1;
23541 } else if (L4_MABX_P.Constant_Value_p < 0.0) {
23542 L4_MABX_DW.LongitudnalPosition_PrevResetSt = -1;
23543 } else if (L4_MABX_P.Constant_Value_p == 0.0) {
23544 L4_MABX_DW.LongitudnalPosition_PrevResetSt = 0;
23545 } else {
23546 L4_MABX_DW.LongitudnalPosition_PrevResetSt = 2;
23547 }
23548
23549 /* End of Update for DiscreteIntegrator: '<S383>/LongitudnalPosition' */
23550
23551 /* Update for DiscreteIntegrator: '<S383>/VehHeading' incorporates:
23552 * Constant: '<S383>/reset'
23553 * DiscreteIntegrator: '<S383>/XPosition'
23554 */
23555 L4_MABX_DW.VehHeading_DSTATE = L4_MABX_P.VehHeading_gainval *
23556 L4_MABX_B.TmpRTBAtVehHeadingInport1 + L4_MABX_B.VehHeading;
23557 if (L4_MABX_P.reset_Value > 0.0) {
23558 L4_MABX_DW.VehHeading_PrevResetState = 1;
23559 L4_MABX_DW.XPosition_PrevResetState = 1;
23560 } else {
23561 if (L4_MABX_P.reset_Value < 0.0) {
23562 L4_MABX_DW.VehHeading_PrevResetState = -1;
23563 } else if (L4_MABX_P.reset_Value == 0.0) {
23564 L4_MABX_DW.VehHeading_PrevResetState = 0;
23565 } else {
23566 L4_MABX_DW.VehHeading_PrevResetState = 2;
23567 }
23568
23569 if (L4_MABX_P.reset_Value < 0.0) {
23570 L4_MABX_DW.XPosition_PrevResetState = -1;
23571 } else if (L4_MABX_P.reset_Value == 0.0) {
23572 L4_MABX_DW.XPosition_PrevResetState = 0;
23573 } else {
23574 L4_MABX_DW.XPosition_PrevResetState = 2;
23575 }
23576 }
23577
23578 /* End of Update for DiscreteIntegrator: '<S383>/VehHeading' */
23579
23580 /* Update for DiscreteIntegrator: '<S383>/XPosition' */
23581 L4_MABX_DW.XPosition_DSTATE = L4_MABX_P.XPosition_gainval *
23582 L4_MABX_B.TrigonometricFunction1 + L4_MABX_B.XPosition;
23583
23584 /* Update for DiscreteIntegrator: '<S383>/YPosition' incorporates:
23585 * Constant: '<S383>/reset'
23586 */
23587 L4_MABX_DW.YPosition_DSTATE = L4_MABX_P.YPosition_gainval *
23588 L4_MABX_B.TrigonometricFunction + L4_MABX_B.YPosition;
23589 if (L4_MABX_P.reset_Value > 0.0) {
23590 L4_MABX_DW.YPosition_PrevResetState = 1;
23591 } else if (L4_MABX_P.reset_Value < 0.0) {
23592 L4_MABX_DW.YPosition_PrevResetState = -1;
23593 } else if (L4_MABX_P.reset_Value == 0.0) {
23594 L4_MABX_DW.YPosition_PrevResetState = 0;
23595 } else {
23596 L4_MABX_DW.YPosition_PrevResetState = 2;
23597 }
23598
23599 /* End of Update for DiscreteIntegrator: '<S383>/YPosition' */
23600 /* End of Update for SubSystem: '<S65>/Task_20ms' */
23601
23602 /* Update for UnitDelay: '<S3>/Unit_Delay' incorporates:
23603 * Constant: '<S382>/Constant1'
23604 * Constant: '<S382>/Constant10'
23605 * Constant: '<S382>/Constant11'
23606 * Constant: '<S382>/Constant12'
23607 * Constant: '<S382>/Constant13'
23608 * Constant: '<S382>/Constant14'
23609 * Constant: '<S382>/Constant15'
23610 * Constant: '<S382>/Constant16'
23611 * Constant: '<S382>/Constant17'
23612 * Constant: '<S382>/Constant18'
23613 * Constant: '<S382>/Constant19'
23614 * Constant: '<S382>/Constant2'
23615 * Constant: '<S382>/Constant20'
23616 * Constant: '<S382>/Constant21'
23617 * Constant: '<S382>/Constant22'
23618 * Constant: '<S382>/Constant23'
23619 * Constant: '<S382>/Constant24'
23620 * Constant: '<S382>/Constant25'
23621 * Constant: '<S382>/Constant3'
23622 * Constant: '<S382>/Constant4'
23623 * Constant: '<S382>/Constant5'
23624 * Constant: '<S382>/Constant6'
23625 * Constant: '<S382>/Constant7'
23626 * Constant: '<S382>/Constant8'
23627 * Constant: '<S382>/Constant9'
23628 */
23629 L4_MABX_DW.Unit_Delay_48_DSTATE = L4_MABX_B.LongitudnalPosition;
23630 L4_MABX_DW.Unit_Delay_49_DSTATE = L4_MABX_B.VehHeading;
23631 L4_MABX_DW.Unit_Delay_50_DSTATE = L4_MABX_B.XPosition;
23632 L4_MABX_DW.Unit_Delay_51_DSTATE = L4_MABX_B.YPosition;
23633 L4_MABX_DW.Unit_Delay_52_DSTATE = L4_MABX_P.Constant1_Value_g;
23634 L4_MABX_DW.Unit_Delay_53_DSTATE = L4_MABX_B.UnitDelay1;
23635 L4_MABX_DW.Unit_Delay_54_DSTATE = L4_MABX_P.Constant2_Value_a;
23636 L4_MABX_DW.Unit_Delay_55_DSTATE = L4_MABX_P.Constant3_Value_l;
23637 L4_MABX_DW.Unit_Delay_56_DSTATE = L4_MABX_P.Constant4_Value_m;
23638 L4_MABX_DW.Unit_Delay_57_DSTATE = L4_MABX_P.Constant5_Value_b;
23639 L4_MABX_DW.Unit_Delay_58_DSTATE = L4_MABX_P.Constant10_Value_h;
23640 L4_MABX_DW.Unit_Delay_59_DSTATE = L4_MABX_P.Constant25_Value;
23641 L4_MABX_DW.Unit_Delay_60_DSTATE = L4_MABX_P.Constant6_Value_e;
23642 L4_MABX_DW.Unit_Delay_61_DSTATE = L4_MABX_P.Constant7_Value;
23643 L4_MABX_DW.Unit_Delay_62_DSTATE = L4_MABX_P.Constant8_Value;
23644 L4_MABX_DW.Unit_Delay_63_DSTATE = L4_MABX_P.Constant9_Value_m;
23645 L4_MABX_DW.Unit_Delay_64_DSTATE = L4_MABX_P.Constant11_Value;
23646 L4_MABX_DW.Unit_Delay_65_DSTATE = L4_MABX_P.Constant12_Value;
23647 L4_MABX_DW.Unit_Delay_66_DSTATE = L4_MABX_P.Constant13_Value;
23648 L4_MABX_DW.Unit_Delay_67_DSTATE = L4_MABX_P.Constant14_Value;
23649 L4_MABX_DW.Unit_Delay_68_DSTATE = L4_MABX_P.Constant19_Value_m;
23650 L4_MABX_DW.Unit_Delay_69_DSTATE = L4_MABX_P.Constant16_Value;
23651 L4_MABX_DW.Unit_Delay_70_DSTATE = L4_MABX_P.Constant21_Value_g;
23652 L4_MABX_DW.Unit_Delay_71_DSTATE = L4_MABX_P.Constant22_Value;
23653 L4_MABX_DW.Unit_Delay_72_DSTATE = L4_MABX_P.Constant15_Value;
23654 L4_MABX_DW.Unit_Delay_73_DSTATE = L4_MABX_P.Constant20_Value_i;
23655 L4_MABX_DW.Unit_Delay_74_DSTATE = L4_MABX_P.Constant17_Value;
23656 L4_MABX_DW.Unit_Delay_75_DSTATE = L4_MABX_P.Constant18_Value;
23657 L4_MABX_DW.Unit_Delay_76_DSTATE = L4_MABX_P.Constant23_Value;
23658 L4_MABX_DW.Unit_Delay_77_DSTATE = L4_MABX_B.Product_c;
23659 L4_MABX_DW.Unit_Delay_78_DSTATE = L4_MABX_P.Constant24_Value;
23660}
23661
23662/* Model output function for TID2 */
23663void L4_MABX_output2(void) /* Sample time: [0.05s, 0.0s] */
23664{
23665 int_T tid = 2;
23666
23667 /* Outputs for Atomic SubSystem: '<S815>/CAN_TX_50ms' */
23668
23669 /* Outputs for Enabled SubSystem: '<S1020>/CCVS1_E3' incorporates:
23670 * EnablePort: '<S1022>/Enable'
23671 */
23672 /* Constant: '<S824>/enable_CAN_TX_CCVS1_CAN3' */
23673 if (L4_MABX_P.enable_CAN_TX_CCVS1_CAN3_Value > 0.0) {
23674 /* S-Function (rti_commonblock): '<S1022>/S-Function1' */
23675 /* This comment workarounds a code generation problem */
23676
23677 /* dSPACE RTICAN TX Message Block: "CCVS1_E3" Id:419361251 */
23678 {
23679 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
23680
23681 Float32 delayTime = 0.0;
23682
23683 /* ... Read status and timestamp info (previous message) */
23684 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]);
23685
23686 /* Convert timestamp */
23687 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->processed) {
23688 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->timestamp =
23689 rtk_dsts_time_to_simtime_convert
23690 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->timestamp);
23691 }
23692
23693 /* Messages with timestamp zero have been received in pause/stop state
23694 and must not be handled.
23695 */
23696 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->timestamp > 0.0) {
23697 L4_MABX_B.SFunction1_o1_b = (real_T)
23698 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->processed;
23699 L4_MABX_B.SFunction1_o2_b = (real_T)
23700 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->timestamp;
23701 L4_MABX_B.SFunction1_o3_j = (real_T)
23702 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->deltatime;
23703 L4_MABX_B.SFunction1_o4_e = (real_T)
23704 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->delaytime;
23705 }
23706
23707 /* ... Encode Simulink signals of TX and RM blocks*/
23708 {
23709 rtican_Signal_t CAN_Sgn;
23710
23711 /* ...... "SPN69_TwoSpeedAxleSwitch" (0|2, standard signal, unsigned int, little endian) */
23712 /* Add or substract 0.5 in order to round to nearest integer */
23713 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.TwoSpeedAxleSwitch ) + 0.5);
23714 CAN_Sgn.UnsignedSgn &= 0x00000003;
23715 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23716
23717 /* ...... "SPN70_ParkingBrakeSwitch" (2|2, standard signal, unsigned int, little endian) */
23718 /* Add or substract 0.5 in order to round to nearest integer */
23719 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkingBrakeSwitch ) + 0.5);
23720 CAN_Sgn.UnsignedSgn &= 0x00000003;
23721 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
23722 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23723
23724 /* ...... "SPN1633_CruiseControlPauseSwitch" (4|2, standard signal, unsigned int, little endian) */
23725 /* Add or substract 0.5 in order to round to nearest integer */
23726 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlPauseSwitch ) +
23727 0.5);
23728 CAN_Sgn.UnsignedSgn &= 0x00000003;
23729 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
23730 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23731
23732 /* ...... "SPN3807_ParkBrakeReleaseInhReq" (6|2, standard signal, unsigned int, little endian) */
23733 /* Add or substract 0.5 in order to round to nearest integer */
23734 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkBrakeReleaseInhibitRq )
23735 + 0.5);
23736 CAN_Sgn.UnsignedSgn &= 0x00000003;
23737 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
23738 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23739
23740 /* ...... "SPN84_WheelBasedVehicleSpeed" (8|16, standard signal, unsigned int, little endian) */
23741 /* Add or substract 0.5 in order to round to nearest integer */
23742 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.WheelBasedVehicleSpeed_n - (
23743 0 ) ) / 0.00390625 + 0.5);
23744 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
23745 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
23746 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte1;
23747
23748 /* ...... "SPN595_CruiseControlActive" (24|2, standard signal, unsigned int, little endian) */
23749 /* Add or substract 0.5 in order to round to nearest integer */
23750 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlActive ) + 0.5);
23751 CAN_Sgn.UnsignedSgn &= 0x00000003;
23752 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
23753
23754 /* ...... "SPN596_CruiseControlEnableSwitch" (26|2, standard signal, unsigned int, little endian) */
23755 /* Add or substract 0.5 in order to round to nearest integer */
23756 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlEnableSwitch_c ) +
23757 0.5);
23758 CAN_Sgn.UnsignedSgn &= 0x00000003;
23759 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
23760 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
23761
23762 /* ...... "SPN597_BrakeSwitch" (28|2, standard signal, unsigned int, little endian) */
23763 /* Add or substract 0.5 in order to round to nearest integer */
23764 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.BrakeSwitch_m ) + 0.5);
23765 CAN_Sgn.UnsignedSgn &= 0x00000003;
23766 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
23767 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
23768
23769 /* ...... "SPN598_ClutchSwitch" (30|2, standard signal, unsigned int, little endian) */
23770 /* Add or substract 0.5 in order to round to nearest integer */
23771 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ClutchSwitch ) + 0.5);
23772 CAN_Sgn.UnsignedSgn &= 0x00000003;
23773 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
23774 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
23775
23776 /* ...... "SPN599_CruiseControlSetSwitch" (32|2, standard signal, unsigned int, little endian) */
23777 /* Add or substract 0.5 in order to round to nearest integer */
23778 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlSetSwitch ) + 0.5);
23779 CAN_Sgn.UnsignedSgn &= 0x00000003;
23780 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
23781
23782 /* ...... "SPN600_CruiseControlCoastDecelSw" (34|2, standard signal, unsigned int, little endian) */
23783 /* Add or substract 0.5 in order to round to nearest integer */
23784 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlCoastSwitch ) +
23785 0.5);
23786 CAN_Sgn.UnsignedSgn &= 0x00000003;
23787 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
23788 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
23789
23790 /* ...... "SPN601_CruiseControlResumeSwitch" (36|2, standard signal, unsigned int, little endian) */
23791 /* Add or substract 0.5 in order to round to nearest integer */
23792 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlResumeSwitch ) +
23793 0.5);
23794 CAN_Sgn.UnsignedSgn &= 0x00000003;
23795 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
23796 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
23797
23798 /* ...... "SPN602_CruiseControlAccelerateSw" (38|2, standard signal, unsigned int, little endian) */
23799 /* Add or substract 0.5 in order to round to nearest integer */
23800 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlAccelerateSwitch )
23801 + 0.5);
23802 CAN_Sgn.UnsignedSgn &= 0x00000003;
23803 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
23804 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
23805
23806 /* ...... "SPN86_CruiseControlSetSpeed" (40|8, standard signal, unsigned int, little endian) */
23807 /* Add or substract 0.5 in order to round to nearest integer */
23808 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlSetSpeed ) + 0.5);
23809 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23810 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
23811
23812 /* ...... "SPN976_PTOGovernorState" (48|5, standard signal, unsigned int, little endian) */
23813 /* Add or substract 0.5 in order to round to nearest integer */
23814 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.PTOGovernorState ) + 0.5);
23815 CAN_Sgn.UnsignedSgn &= 0x0000001F;
23816 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
23817
23818 /* ...... "SPN527_CruiseControlStates" (53|3, standard signal, unsigned int, little endian) */
23819 /* Add or substract 0.5 in order to round to nearest integer */
23820 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlStates ) + 0.5);
23821 CAN_Sgn.UnsignedSgn &= 0x00000007;
23822 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 5;
23823 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
23824
23825 /* ...... "SPN968_EngIdleIncrementSw" (56|2, standard signal, unsigned int, little endian) */
23826 /* Add or substract 0.5 in order to round to nearest integer */
23827 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngIdleIncrementSwitch ) +
23828 0.5);
23829 CAN_Sgn.UnsignedSgn &= 0x00000003;
23830 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
23831
23832 /* ...... "SPN967_EngIdleDecrementSwitch" (58|2, standard signal, unsigned int, little endian) */
23833 /* Add or substract 0.5 in order to round to nearest integer */
23834 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngIdleDecrementSwitch ) +
23835 0.5);
23836 CAN_Sgn.UnsignedSgn &= 0x00000003;
23837 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
23838 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
23839
23840 /* ...... "SPN966_EngDiagTestModeSwitch" (60|2, standard signal, unsigned int, little endian) */
23841 /* Add or substract 0.5 in order to round to nearest integer */
23842 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngTestModeSwitch ) + 0.5);
23843 CAN_Sgn.UnsignedSgn &= 0x00000003;
23844 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
23845 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
23846
23847 /* ...... "SPN1237_EngShutdownOvrdSwitch" (62|2, standard signal, unsigned int, little endian) */
23848 /* Add or substract 0.5 in order to round to nearest integer */
23849 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngShutdownOverrideSwitch )
23850 + 0.5);
23851 CAN_Sgn.UnsignedSgn &= 0x00000003;
23852 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
23853 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
23854 }
23855
23856 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
23857 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3], 8,
23858 &(CAN_Msg[0]), delayTime);
23859 }
23860 }
23861
23862 /* End of Constant: '<S824>/enable_CAN_TX_CCVS1_CAN3' */
23863 /* End of Outputs for SubSystem: '<S1020>/CCVS1_E3' */
23864
23865 /* Outputs for Enabled SubSystem: '<S1021>/TC1_03_05' incorporates:
23866 * EnablePort: '<S1023>/Enable'
23867 */
23868 /* Constant: '<S1021>/CANT_TC1_03_05_APV' */
23869 if (L4_MABX_P.CANT_TC1_03_05_APV_Value) {
23870 /* S-Function (rti_commonblock): '<S1023>/S-Function1' */
23871 /* This comment workarounds a code generation problem */
23872
23873 /* dSPACE RTICAN TX Message Block: "TC1_03_05" Id:201392901 */
23874 {
23875 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
23876
23877 Float32 delayTime = 0.0;
23878
23879 /* ... Read status and timestamp info (previous message) */
23880 can_tp1_msg_read(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]);
23881
23882 /* Convert timestamp */
23883 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->processed) {
23884 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->timestamp =
23885 rtk_dsts_time_to_simtime_convert
23886 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->timestamp);
23887 }
23888
23889 /* Messages with timestamp zero have been received in pause/stop state
23890 and must not be handled.
23891 */
23892 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->timestamp > 0.0) {
23893 L4_MABX_B.SFunction1_o1_g = (real_T)
23894 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->processed;
23895 L4_MABX_B.SFunction1_o2_j = (real_T)
23896 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->timestamp;
23897 L4_MABX_B.SFunction1_o3_p = (real_T)
23898 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->deltatime;
23899 L4_MABX_B.SFunction1_o4_p = (real_T)
23900 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->delaytime;
23901 }
23902
23903 /* ... Encode Simulink signals of TX and RM blocks*/
23904 {
23905 rtican_Signal_t CAN_Sgn;
23906
23907 /* ...... "SPN681_TransGearShiftInhibitReq" (0|2, standard signal, unsigned int, little endian) */
23908 /* Add or substract 0.5 in order to round to nearest integer */
23909 CAN_Sgn.UnsignedSgn = (UInt32)
23910 (( L4_MABX_B.SPN681_TransGearShiftInhibitReq ) + 0.5);
23911 CAN_Sgn.UnsignedSgn &= 0x00000003;
23912 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23913
23914 /* ...... "SPN682_TransTrqConvLockupDisReq" (2|2, standard signal, unsigned int, little endian) */
23915 /* Add or substract 0.5 in order to round to nearest integer */
23916 CAN_Sgn.UnsignedSgn = (UInt32)
23917 (( L4_MABX_B.SPN682_TransTrqConvLockupDisReq ) + 0.5);
23918 CAN_Sgn.UnsignedSgn &= 0x00000003;
23919 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
23920 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23921
23922 /* ...... "SPN683_DisengageDrivelineReq" (4|2, standard signal, unsigned int, little endian) */
23923 /* Add or substract 0.5 in order to round to nearest integer */
23924 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN683_DisengageDrivelineReq
23925 ) + 0.5);
23926 CAN_Sgn.UnsignedSgn &= 0x00000003;
23927 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
23928 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23929
23930 /* ...... "SPN4242_TransRevGearShiftInhibRq" (6|2, standard signal, unsigned int, little endian) */
23931 /* Add or substract 0.5 in order to round to nearest integer */
23932 CAN_Sgn.UnsignedSgn = (UInt32)
23933 (( L4_MABX_B.SPN4242_TransRevGearShiftInhibR ) + 0.5);
23934 CAN_Sgn.UnsignedSgn &= 0x00000003;
23935 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
23936 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23937
23938 /* ...... "SPN684_RequestedPercClutchSlip" (8|8, standard signal, unsigned int, little endian) */
23939 /* Add or substract 0.5 in order to round to nearest integer */
23940 CAN_Sgn.UnsignedSgn = (UInt32)
23941 (( L4_MABX_B.SPN684_RequestedPercClutchSlip - ( 0 ) ) / 0.4 + 0.5);
23942 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23943 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
23944
23945 /* ...... "SPN525_TransRequestedGear" (16|8, standard signal, unsigned int, little endian) */
23946 /* Add or substract 0.5 in order to round to nearest integer */
23947 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.SPN525_TransRequestedGear - (
23948 -125 ) + 0.5);
23949 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23950 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
23951
23952 /* ...... "SPN685_DisengageDiffLockRqFrAx1" (24|2, standard signal, unsigned int, little endian) */
23953 /* Add or substract 0.5 in order to round to nearest integer */
23954 CAN_Sgn.UnsignedSgn = (UInt32)
23955 (( L4_MABX_B.SPN685_DisengageDiffLockRqFrAx1 ) + 0.5);
23956 CAN_Sgn.UnsignedSgn &= 0x00000003;
23957 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
23958
23959 /* ...... "SPN686_DisengageDiffLockRqFrAx2" (26|2, standard signal, unsigned int, little endian) */
23960 /* Add or substract 0.5 in order to round to nearest integer */
23961 CAN_Sgn.UnsignedSgn = (UInt32)
23962 (( L4_MABX_B.SPN686_DisengageDiffLockRqFrAx2 ) + 0.5);
23963 CAN_Sgn.UnsignedSgn &= 0x00000003;
23964 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
23965 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
23966
23967 /* ...... "SPN687_DisengageDiffLockRqRrAx1" (28|2, standard signal, unsigned int, little endian) */
23968 /* Add or substract 0.5 in order to round to nearest integer */
23969 CAN_Sgn.UnsignedSgn = (UInt32)
23970 (( L4_MABX_B.SPN687_DisengageDiffLockRqRrAx1 ) + 0.5);
23971 CAN_Sgn.UnsignedSgn &= 0x00000003;
23972 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
23973 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
23974
23975 /* ...... "SPN688_DisengageDiffLockRqRrAx2" (30|2, standard signal, unsigned int, little endian) */
23976 /* Add or substract 0.5 in order to round to nearest integer */
23977 CAN_Sgn.UnsignedSgn = (UInt32)
23978 (( L4_MABX_B.SPN688_DisengageDiffLockRqRrAx2 ) + 0.5);
23979 CAN_Sgn.UnsignedSgn &= 0x00000003;
23980 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
23981 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
23982
23983 /* ...... "SPN689_DisengageDiffLockRqC" (32|2, standard signal, unsigned int, little endian) */
23984 /* Add or substract 0.5 in order to round to nearest integer */
23985 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN689_DisengageDiffLockRqC )
23986 + 0.5);
23987 CAN_Sgn.UnsignedSgn &= 0x00000003;
23988 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
23989
23990 /* ...... "SPN690_DisengageDiffLockRqCF" (34|2, standard signal, unsigned int, little endian) */
23991 /* Add or substract 0.5 in order to round to nearest integer */
23992 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN690_DisengageDiffLockRqCF
23993 ) + 0.5);
23994 CAN_Sgn.UnsignedSgn &= 0x00000003;
23995 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
23996 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
23997
23998 /* ...... "SPN691_DisengageDiffLockRqCR" (36|2, standard signal, unsigned int, little endian) */
23999 /* Add or substract 0.5 in order to round to nearest integer */
24000 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN691_DisengageDiffLockRqCR
24001 ) + 0.5);
24002 CAN_Sgn.UnsignedSgn &= 0x00000003;
24003 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24004 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24005
24006 /* ...... "SPN5762_TransLoadRedInhibitRq" (38|2, standard signal, unsigned int, little endian) */
24007 /* Add or substract 0.5 in order to round to nearest integer */
24008 CAN_Sgn.UnsignedSgn = (UInt32)
24009 (( L4_MABX_B.SPN5762_TransLoadRedInhibitRq ) + 0.5);
24010 CAN_Sgn.UnsignedSgn &= 0x00000003;
24011 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24012 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24013
24014 /* ...... "SPN1852_TransmissionMode1" (40|2, standard signal, unsigned int, little endian) */
24015 /* Add or substract 0.5 in order to round to nearest integer */
24016 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN1852_TransmissionMode1 )
24017 + 0.5);
24018 CAN_Sgn.UnsignedSgn &= 0x00000003;
24019 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
24020
24021 /* ...... "SPN1853_TransmissionMode2" (42|2, standard signal, unsigned int, little endian) */
24022 /* Add or substract 0.5 in order to round to nearest integer */
24023 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN1853_TransmissionMode2 )
24024 + 0.5);
24025 CAN_Sgn.UnsignedSgn &= 0x00000003;
24026 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24027 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
24028
24029 /* ...... "SPN1854_TransmissionMode3" (44|2, standard signal, unsigned int, little endian) */
24030 /* Add or substract 0.5 in order to round to nearest integer */
24031 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN1854_TransmissionMode3 )
24032 + 0.5);
24033 CAN_Sgn.UnsignedSgn &= 0x00000003;
24034 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24035 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
24036
24037 /* ...... "SPN1855_TransmissionMode4" (46|2, standard signal, unsigned int, little endian) */
24038 /* Add or substract 0.5 in order to round to nearest integer */
24039 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN1855_TransmissionMode4 )
24040 + 0.5);
24041 CAN_Sgn.UnsignedSgn &= 0x00000003;
24042 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24043 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
24044
24045 /* ...... "SPN7695_TransAutoNeutralRequest" (48|2, standard signal, unsigned int, little endian) */
24046 /* Add or substract 0.5 in order to round to nearest integer */
24047 CAN_Sgn.UnsignedSgn = (UInt32)
24048 (( L4_MABX_B.SPN7695_TransAutoNeutralRequest ) + 0.5);
24049 CAN_Sgn.UnsignedSgn &= 0x00000003;
24050 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
24051
24052 /* ...... "SPN4255_TransRequestedLaunchGear" (50|4, standard signal, unsigned int, little endian) */
24053 /* Add or substract 0.5 in order to round to nearest integer */
24054 CAN_Sgn.UnsignedSgn = (UInt32)
24055 (( L4_MABX_B.SPN4255_TransRequestedLaunchGea ) + 0.5);
24056 CAN_Sgn.UnsignedSgn &= 0x0000000F;
24057 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24058 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
24059
24060 /* ...... "SPN2985_TransShiftSelDispModeSw" (54|2, standard signal, unsigned int, little endian) */
24061 /* Add or substract 0.5 in order to round to nearest integer */
24062 CAN_Sgn.UnsignedSgn = (UInt32)
24063 (( L4_MABX_B.SPN2985_TransShiftSelDispModeSw ) + 0.5);
24064 CAN_Sgn.UnsignedSgn &= 0x00000003;
24065 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24066 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
24067
24068 /* ...... "SPN4246_TransmissionMode5" (56|2, standard signal, unsigned int, little endian) */
24069 /* Add or substract 0.5 in order to round to nearest integer */
24070 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN4246_TransmissionMode5 )
24071 + 0.5);
24072 CAN_Sgn.UnsignedSgn &= 0x00000003;
24073 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24074
24075 /* ...... "SPN4247_TransmissionMode6" (58|2, standard signal, unsigned int, little endian) */
24076 /* Add or substract 0.5 in order to round to nearest integer */
24077 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN4247_TransmissionMode6 )
24078 + 0.5);
24079 CAN_Sgn.UnsignedSgn &= 0x00000003;
24080 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24081 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24082
24083 /* ...... "SPN4248_TransmissionMode7" (60|2, standard signal, unsigned int, little endian) */
24084 /* Add or substract 0.5 in order to round to nearest integer */
24085 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN4248_TransmissionMode7 )
24086 + 0.5);
24087 CAN_Sgn.UnsignedSgn &= 0x00000003;
24088 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24089 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24090
24091 /* ...... "SPN4249_TransmissionMode8" (62|2, standard signal, unsigned int, little endian) */
24092 /* Add or substract 0.5 in order to round to nearest integer */
24093 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN4249_TransmissionMode8 )
24094 + 0.5);
24095 CAN_Sgn.UnsignedSgn &= 0x00000003;
24096 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24097 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24098 }
24099
24100 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
24101 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305], 8,
24102 &(CAN_Msg[0]), delayTime);
24103 }
24104 }
24105
24106 /* End of Constant: '<S1021>/CANT_TC1_03_05_APV' */
24107 /* End of Outputs for SubSystem: '<S1021>/TC1_03_05' */
24108
24109 /* End of Outputs for SubSystem: '<S815>/CAN_TX_50ms' */
24110 /* user code (Output function Trailer for TID2) */
24111
24112 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
24113 /* EventChannel: 0 */
24114 if (tid == 0) {
24115 DSXCP_service(0);
24116 }
24117
24118 /* If subsystem generates rate grouping Output functions,
24119 * when tid is used in Output function for one rate,
24120 * all Output functions include tid as a local variable.
24121 * As result, some Output functions may have unused tid.
24122 */
24123 UNUSED_PARAMETER(tid);
24124}
24125
24126/* Model update function for TID2 */
24127void L4_MABX_update2(void) /* Sample time: [0.05s, 0.0s] */
24128{
24129 /* (no update code required) */
24130}
24131
24132/* Model output function for TID3 */
24133void L4_MABX_output3(void) /* Sample time: [0.1s, 0.0s] */
24134{
24135 int_T tid = 3;
24136 uint16_T tmp;
24137 uint32_T tmp_0;
24138 uint8_T tmp_1;
24139 real_T tmp_2;
24140
24141 /* Outputs for Atomic SubSystem: '<S815>/CAN_TX_100ms' */
24142
24143 /* DataTypeConversion: '<S852>/Data Type Conversion' incorporates:
24144 * Constant: '<S819>/PROPB_XPR_INHIBIT_PARK_MANUAL_APV'
24145 */
24146 L4_MABX_B.DataTypeConversion_jn = (uint8_T)
24147 L4_MABX_P.PROPB_XPR_INHIBIT_PARK_MANUAL_A;
24148
24149 /* S-Function (sfix_bitop): '<S884>/Operator' */
24150 L4_MABX_B.Operator_pxz = (uint8_T)(L4_MABX_B.DataTypeConversion_jn &
24151 L4_MABX_P.Operator_BitMask_ig);
24152
24153 /* DataTypeConversion: '<S884>/DataType' */
24154 L4_MABX_B.DataType_gv = L4_MABX_B.Operator_pxz;
24155
24156 /* DataTypeConversion: '<S852>/Data Type Conversion2' incorporates:
24157 * Constant: '<S819>/PROPB_XPR_INHIBIT_UNPARK_MANUAL_APV'
24158 */
24159 L4_MABX_B.DataTypeConversion2_mn = (uint8_T)
24160 L4_MABX_P.PROPB_XPR_INHIBIT_UNPARK_MANUAL;
24161
24162 /* S-Function (sfix_bitop): '<S886>/Operator' */
24163 L4_MABX_B.Operator_mk = (uint8_T)(L4_MABX_B.DataTypeConversion2_mn &
24164 L4_MABX_P.Operator_BitMask_kn);
24165
24166 /* DataTypeConversion: '<S886>/DataType' */
24167 L4_MABX_B.DataType_g0 = L4_MABX_B.Operator_mk;
24168
24169 /* ArithShift: '<S852>/Shift_Arithmetic ' */
24170 L4_MABX_B.Shift_Arithmetic_lp = (uint8_T)(L4_MABX_B.DataType_g0 << 2);
24171
24172 /* DataTypeConversion: '<S852>/Data Type Conversion4' incorporates:
24173 * Constant: '<S819>/PROPB_XPR_PARK_MANUAL_APV'
24174 */
24175 L4_MABX_B.DataTypeConversion4_ah = (uint8_T)
24176 L4_MABX_P.PROPB_XPR_PARK_MANUAL_APV_Value;
24177
24178 /* S-Function (sfix_bitop): '<S887>/Operator' */
24179 L4_MABX_B.Operator_bd = (uint8_T)(L4_MABX_B.DataTypeConversion4_ah &
24180 L4_MABX_P.Operator_BitMask_l);
24181
24182 /* DataTypeConversion: '<S887>/DataType' */
24183 L4_MABX_B.DataType_eyw = L4_MABX_B.Operator_bd;
24184
24185 /* ArithShift: '<S852>/Shift_Arithmetic 1' */
24186 L4_MABX_B.Shift_Arithmetic1_oa = (uint8_T)(L4_MABX_B.DataType_eyw << 4);
24187
24188 /* DataTypeConversion: '<S852>/Data Type Conversion5' incorporates:
24189 * Constant: '<S819>/PROPB_XPR_UNPARK_MANUAL_APV'
24190 */
24191 L4_MABX_B.DataTypeConversion5_jj = (uint8_T)
24192 L4_MABX_P.PROPB_XPR_UNPARK_MANUAL_APV_Val;
24193
24194 /* S-Function (sfix_bitop): '<S885>/Operator' */
24195 L4_MABX_B.Operator_pow = (uint8_T)(L4_MABX_B.DataTypeConversion5_jj &
24196 L4_MABX_P.Operator_BitMask_dw);
24197
24198 /* DataTypeConversion: '<S885>/DataType' */
24199 L4_MABX_B.DataType_lb = L4_MABX_B.Operator_pow;
24200
24201 /* ArithShift: '<S852>/Shift_Arithmetic 2' */
24202 L4_MABX_B.Shift_Arithmetic2_g = (uint8_T)(L4_MABX_B.DataType_lb << 6);
24203
24204 /* S-Function (sfix_bitop): '<S892>/Operator' */
24205 L4_MABX_B.Operator_p4 = (uint8_T)(L4_MABX_B.DataType_gv |
24206 L4_MABX_B.Shift_Arithmetic_lp | L4_MABX_B.Shift_Arithmetic1_oa |
24207 L4_MABX_B.Shift_Arithmetic2_g);
24208
24209 /* DataTypeConversion: '<S892>/DataType' */
24210 L4_MABX_B.DataType_f3o = L4_MABX_B.Operator_p4;
24211
24212 /* Outputs for Enabled SubSystem: '<S852>/Rolling_15_counter' incorporates:
24213 * EnablePort: '<S894>/Enable'
24214 */
24215 if (L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_R) {
24216 /* UnitDelay: '<S894>/Unit_Delay' */
24217 L4_MABX_B.Unit_Delay = L4_MABX_DW.Unit_Delay_DSTATE;
24218
24219 /* Sum: '<S902>/FixPt Sum1' incorporates:
24220 * Constant: '<S902>/FixPt Constant'
24221 */
24222 L4_MABX_B.FixPtSum1_ls = L4_MABX_B.Unit_Delay +
24223 L4_MABX_P.FixPtConstant_Value;
24224
24225 /* Switch: '<S903>/FixPt Switch' incorporates:
24226 * Constant: '<S903>/Constant'
24227 */
24228 if (L4_MABX_B.FixPtSum1_ls > L4_MABX_P.WrapToZero1_Threshold) {
24229 L4_MABX_B.FixPtSwitch = L4_MABX_P.Constant_Value_de;
24230 } else {
24231 L4_MABX_B.FixPtSwitch = L4_MABX_B.FixPtSum1_ls;
24232 }
24233
24234 /* End of Switch: '<S903>/FixPt Switch' */
24235 }
24236
24237 /* End of Outputs for SubSystem: '<S852>/Rolling_15_counter' */
24238
24239 /* DataTypeConversion: '<S852>/Data Type Conversion1' */
24240 tmp_2 = L4_MABX_B.Unit_Delay;
24241 if (tmp_2 < 256.0) {
24242 if (tmp_2 >= 0.0) {
24243 tmp_1 = (uint8_T)tmp_2;
24244 } else {
24245 tmp_1 = 0U;
24246 }
24247 } else {
24248 tmp_1 = MAX_uint8_T;
24249 }
24250
24251 L4_MABX_B.DataTypeConversion1_h0f = tmp_1;
24252
24253 /* End of DataTypeConversion: '<S852>/Data Type Conversion1' */
24254
24255 /* S-Function (sfix_bitop): '<S888>/Operator' */
24256 L4_MABX_B.Operator_d0 = (uint8_T)(L4_MABX_B.DataTypeConversion1_h0f &
24257 L4_MABX_P.Operator_BitMask_l5);
24258
24259 /* DataTypeConversion: '<S888>/DataType' */
24260 L4_MABX_B.DataType_kx = L4_MABX_B.Operator_d0;
24261
24262 /* DataTypeConversion: '<S891>/Data Type Conversion' incorporates:
24263 * Constant: '<S891>/Priority'
24264 */
24265 L4_MABX_B.DataTypeConversion_c = L4_MABX_P.Priority_Value;
24266
24267 /* ArithShift: '<S891>/Shift_Arithmetic ' */
24268 L4_MABX_B.Shift_Arithmetic_h = L4_MABX_B.DataTypeConversion_c << 26;
24269
24270 /* DataTypeConversion: '<S891>/Data Type Conversion1' incorporates:
24271 * Constant: '<S891>/ExtendedDataPage'
24272 */
24273 L4_MABX_B.DataTypeConversion1_br = L4_MABX_P.ExtendedDataPage_Value;
24274
24275 /* ArithShift: '<S891>/Shift_Arithmetic 1' */
24276 L4_MABX_B.Shift_Arithmetic1_b = L4_MABX_B.DataTypeConversion1_br << 25;
24277
24278 /* DataTypeConversion: '<S891>/Data Type Conversion2' incorporates:
24279 * Constant: '<S891>/DataPage'
24280 */
24281 L4_MABX_B.DataTypeConversion2_kk = L4_MABX_P.DataPage_Value;
24282
24283 /* ArithShift: '<S891>/Shift_Arithmetic 2' */
24284 L4_MABX_B.Shift_Arithmetic2_em = L4_MABX_B.DataTypeConversion2_kk << 24;
24285
24286 /* DataTypeConversion: '<S891>/Data Type Conversion3' incorporates:
24287 * Constant: '<S891>/PDUFormat'
24288 */
24289 L4_MABX_B.DataTypeConversion3_ce = L4_MABX_P.PDUFormat_Value;
24290
24291 /* ArithShift: '<S891>/Shift_Arithmetic 3' */
24292 L4_MABX_B.Shift_Arithmetic3_a = L4_MABX_B.DataTypeConversion3_ce << 16;
24293
24294 /* DataTypeConversion: '<S891>/Data Type Conversion4' incorporates:
24295 * Constant: '<S891>/PDUSpecific'
24296 */
24297 L4_MABX_B.DataTypeConversion4_ed = L4_MABX_P.PDUSpecific_Value;
24298
24299 /* ArithShift: '<S891>/Shift_Arithmetic 4' */
24300 L4_MABX_B.Shift_Arithmetic4_c = L4_MABX_B.DataTypeConversion4_ed << 8;
24301
24302 /* DataTypeConversion: '<S891>/Data Type Conversion5' incorporates:
24303 * Constant: '<S891>/SourceAddress'
24304 */
24305 L4_MABX_B.DataTypeConversion5_oh = L4_MABX_P.SourceAddress_Value;
24306
24307 /* S-Function (sfix_bitop): '<S901>/Operator' */
24308 L4_MABX_B.Operator_mev = L4_MABX_B.Shift_Arithmetic_h |
24309 L4_MABX_B.Shift_Arithmetic1_b | L4_MABX_B.Shift_Arithmetic2_em |
24310 L4_MABX_B.Shift_Arithmetic3_a | L4_MABX_B.Shift_Arithmetic4_c |
24311 L4_MABX_B.DataTypeConversion5_oh;
24312
24313 /* DataTypeConversion: '<S901>/DataType' */
24314 L4_MABX_B.DataType_f4 = L4_MABX_B.Operator_mev;
24315
24316 /* DataTypeConversion: '<S890>/Data Type Conversion8' */
24317 L4_MABX_B.DataTypeConversion8_a5 = L4_MABX_B.DataType_f4;
24318
24319 /* S-Function (sfix_bitop): '<S897>/Operator' */
24320 L4_MABX_B.Operator_b = L4_MABX_B.DataTypeConversion8_a5 &
24321 L4_MABX_P.Operator_BitMask_fw;
24322
24323 /* DataTypeConversion: '<S897>/DataType' */
24324 tmp_0 = L4_MABX_B.Operator_b;
24325 if (tmp_0 > 255U) {
24326 tmp_0 = 255U;
24327 }
24328
24329 L4_MABX_B.DataType_cd = (uint8_T)tmp_0;
24330
24331 /* End of DataTypeConversion: '<S897>/DataType' */
24332
24333 /* S-Function (sfix_bitop): '<S898>/Operator' */
24334 L4_MABX_B.Operator_ip = L4_MABX_B.DataTypeConversion8_a5 &
24335 L4_MABX_P.Operator_BitMask_k1;
24336
24337 /* DataTypeConversion: '<S898>/DataType' */
24338 tmp_0 = L4_MABX_B.Operator_ip;
24339 if (tmp_0 > 65535U) {
24340 tmp_0 = 65535U;
24341 }
24342
24343 L4_MABX_B.DataType_p3 = (uint16_T)tmp_0;
24344
24345 /* End of DataTypeConversion: '<S898>/DataType' */
24346
24347 /* ArithShift: '<S890>/Shift_Arithmetic 3' */
24348 L4_MABX_B.Shift_Arithmetic3_dg = (uint16_T)((uint32_T)L4_MABX_B.DataType_p3 >>
24349 8);
24350
24351 /* DataTypeConversion: '<S890>/Data Type Conversion9' */
24352 tmp = L4_MABX_B.Shift_Arithmetic3_dg;
24353 if (tmp > 255) {
24354 tmp = 255U;
24355 }
24356
24357 L4_MABX_B.MessageIDMidLowByte = (uint8_T)tmp;
24358
24359 /* End of DataTypeConversion: '<S890>/Data Type Conversion9' */
24360
24361 /* S-Function (sfix_bitop): '<S899>/Operator' */
24362 L4_MABX_B.Operator_ma = L4_MABX_B.DataTypeConversion8_a5 &
24363 L4_MABX_P.Operator_BitMask_fz;
24364
24365 /* DataTypeConversion: '<S899>/DataType' */
24366 L4_MABX_B.DataType_o0 = L4_MABX_B.Operator_ma;
24367
24368 /* ArithShift: '<S890>/Shift_Arithmetic 4' */
24369 L4_MABX_B.Shift_Arithmetic4_i = L4_MABX_B.DataType_o0 >> 16;
24370
24371 /* DataTypeConversion: '<S890>/Data Type Conversion10' */
24372 tmp_0 = L4_MABX_B.Shift_Arithmetic4_i;
24373 if (tmp_0 > 255U) {
24374 tmp_0 = 255U;
24375 }
24376
24377 L4_MABX_B.MessageIDMidHighByte = (uint8_T)tmp_0;
24378
24379 /* End of DataTypeConversion: '<S890>/Data Type Conversion10' */
24380
24381 /* S-Function (sfix_bitop): '<S900>/Operator' */
24382 L4_MABX_B.Operator_h = L4_MABX_B.DataTypeConversion8_a5 &
24383 L4_MABX_P.Operator_BitMask_l0;
24384
24385 /* DataTypeConversion: '<S900>/DataType' */
24386 L4_MABX_B.DataType_a4 = L4_MABX_B.Operator_h;
24387
24388 /* ArithShift: '<S890>/Shift_Arithmetic 5' */
24389 L4_MABX_B.Shift_Arithmetic5_i = L4_MABX_B.DataType_a4 >> 24;
24390
24391 /* DataTypeConversion: '<S890>/Data Type Conversion11' */
24392 tmp_0 = L4_MABX_B.Shift_Arithmetic5_i;
24393 if (tmp_0 > 255U) {
24394 tmp_0 = 255U;
24395 }
24396
24397 L4_MABX_B.MessageIDHighByte = (uint8_T)tmp_0;
24398
24399 /* End of DataTypeConversion: '<S890>/Data Type Conversion11' */
24400
24401 /* DataTypeConversion: '<S890>/Data Type Conversion13' */
24402 tmp_2 = L4_MABX_B.Unit_Delay;
24403 if (tmp_2 < 256.0) {
24404 if (tmp_2 >= 0.0) {
24405 tmp_1 = (uint8_T)tmp_2;
24406 } else {
24407 tmp_1 = 0U;
24408 }
24409 } else {
24410 tmp_1 = MAX_uint8_T;
24411 }
24412
24413 L4_MABX_B.DataTypeConversion13_kd = tmp_1;
24414
24415 /* End of DataTypeConversion: '<S890>/Data Type Conversion13' */
24416
24417 /* S-Function (sfix_bitop): '<S896>/Operator' */
24418 L4_MABX_B.Operator_hj = (uint8_T)(L4_MABX_B.DataTypeConversion13_kd &
24419 L4_MABX_P.Operator_BitMask_ku);
24420
24421 /* DataTypeConversion: '<S896>/DataType' */
24422 L4_MABX_B.DataType_c1 = L4_MABX_B.Operator_hj;
24423
24424 /* Sum: '<S890>/Add' incorporates:
24425 * Constant: '<S852>/Constant3'
24426 */
24427 L4_MABX_B.Checksum = (uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)
24428 ((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)
24429 (uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)
24430 ((uint32_T)(uint8_T)((uint32_T)L4_MABX_B.DataType_f3o +
24431 L4_MABX_P.Constant3_Value_a0) + L4_MABX_P.Constant3_Value_a0) +
24432 L4_MABX_P.Constant3_Value_a0) + L4_MABX_P.Constant3_Value_a0) +
24433 L4_MABX_P.Constant3_Value_a0) + L4_MABX_P.Constant3_Value_a0) +
24434 L4_MABX_B.DataType_cd) + L4_MABX_B.MessageIDMidLowByte) +
24435 L4_MABX_B.MessageIDMidHighByte) + L4_MABX_B.MessageIDHighByte) +
24436 L4_MABX_B.DataType_c1);
24437
24438 /* ArithShift: '<S890>/Shift_Arithmetic 7' */
24439 L4_MABX_B.Shift_Arithmetic7_b = (uint8_T)((uint32_T)L4_MABX_B.Checksum >> 4);
24440
24441 /* Sum: '<S890>/Add1' */
24442 L4_MABX_B.Add1_h4 = (uint8_T)((uint32_T)L4_MABX_B.Shift_Arithmetic7_b +
24443 L4_MABX_B.Checksum);
24444
24445 /* S-Function (sfix_bitop): '<S895>/Operator' */
24446 L4_MABX_B.Operator_ma0 = (uint8_T)(L4_MABX_B.Add1_h4 &
24447 L4_MABX_P.Operator_BitMask_oe);
24448
24449 /* DataTypeConversion: '<S895>/DataType' */
24450 L4_MABX_B.DataType_ge = L4_MABX_B.Operator_ma0;
24451
24452 /* DataTypeConversion: '<S852>/Data Type Conversion3' */
24453 L4_MABX_B.DataTypeConversion3_fl = L4_MABX_B.DataType_ge;
24454
24455 /* S-Function (sfix_bitop): '<S889>/Operator' */
24456 L4_MABX_B.Operator_iu = (uint8_T)(L4_MABX_B.DataTypeConversion3_fl &
24457 L4_MABX_P.Operator_BitMask_o);
24458
24459 /* DataTypeConversion: '<S889>/DataType' */
24460 L4_MABX_B.DataType_ei = L4_MABX_B.Operator_iu;
24461
24462 /* ArithShift: '<S852>/Shift_Arithmetic 3' */
24463 L4_MABX_B.Shift_Arithmetic3_p = (uint8_T)(L4_MABX_B.DataType_ei << 4);
24464
24465 /* S-Function (sfix_bitop): '<S893>/Operator' */
24466 L4_MABX_B.Operator_nt = (uint8_T)(L4_MABX_B.DataType_kx |
24467 L4_MABX_B.Shift_Arithmetic3_p);
24468
24469 /* DataTypeConversion: '<S893>/DataType' */
24470 L4_MABX_B.DataType_m3 = L4_MABX_B.Operator_nt;
24471
24472 /* DataTypeConversion: '<S847>/Data Type Conversion1' incorporates:
24473 * Constant: '<S852>/Constant3'
24474 */
24475 L4_MABX_B.DataTypeConversion1_mj[0] = L4_MABX_B.DataType_f3o;
24476 L4_MABX_B.DataTypeConversion1_mj[1] = L4_MABX_P.Constant3_Value_a0;
24477 L4_MABX_B.DataTypeConversion1_mj[2] = L4_MABX_P.Constant3_Value_a0;
24478 L4_MABX_B.DataTypeConversion1_mj[3] = L4_MABX_P.Constant3_Value_a0;
24479 L4_MABX_B.DataTypeConversion1_mj[4] = L4_MABX_P.Constant3_Value_a0;
24480 L4_MABX_B.DataTypeConversion1_mj[5] = L4_MABX_P.Constant3_Value_a0;
24481 L4_MABX_B.DataTypeConversion1_mj[6] = L4_MABX_P.Constant3_Value_a0;
24482 L4_MABX_B.DataTypeConversion1_mj[7] = L4_MABX_B.DataType_m3;
24483
24484 /* DataTypeConversion: '<S847>/Data Type Conversion' incorporates:
24485 * Constant: '<S819>/CANT_PROPB_XPR_FC_CHANNEL_APV'
24486 */
24487 L4_MABX_B.DataTypeConversion_lq = (uint8_T)
24488 L4_MABX_P.CANT_PROPB_XPR_FC_CHANNEL_APV_V;
24489
24490 /* S-Function (sfix_bitop): '<S862>/Operator' */
24491 L4_MABX_B.Operator_cn = (uint8_T)(L4_MABX_B.DataTypeConversion_lq &
24492 L4_MABX_P.Operator_BitMask_p);
24493
24494 /* DataTypeConversion: '<S862>/DataType' */
24495 L4_MABX_B.DataType_hc = L4_MABX_B.Operator_cn;
24496
24497 /* DataTypeConversion: '<S847>/Data Type Conversion2' */
24498 L4_MABX_B.DataTypeConversion2_h3 = (L4_MABX_B.DataType_hc != 0);
24499
24500 /* Logic: '<S870>/Operator' */
24501 L4_MABX_B.Operator_m4 = (L4_MABX_B.TmpRTBAtOperatorInport1 &&
24502 L4_MABX_B.DataTypeConversion2_h3);
24503
24504 /* DataTypeConversion: '<S870>/DataType' */
24505 L4_MABX_B.DataType_aw = L4_MABX_B.Operator_m4;
24506
24507 /* Outputs for Enabled SubSystem: '<S874>/PropB_XPR_FC' incorporates:
24508 * EnablePort: '<S876>/Enable'
24509 */
24510 if (L4_MABX_B.DataType_aw) {
24511 /* S-Function (rti_commonblock): '<S876>/S-Function1' */
24512 /* This comment workarounds a code generation problem */
24513
24514 /* dSPACE RTICAN TX Message Block: "PropB_XPR_FC" Id:419366140 */
24515 {
24516 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
24517
24518 Float32 delayTime = 0.0;
24519
24520 /* ... Read status and timestamp info (previous message) */
24521 can_tp1_msg_read(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]);
24522
24523 /* Convert timestamp */
24524 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->processed) {
24525 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->timestamp =
24526 rtk_dsts_time_to_simtime_convert
24527 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->timestamp);
24528 }
24529
24530 /* Messages with timestamp zero have been received in pause/stop state
24531 and must not be handled.
24532 */
24533 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->timestamp > 0.0) {
24534 L4_MABX_B.SFunction1_o1_oz = (real_T)
24535 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->processed;
24536 L4_MABX_B.SFunction1_o2_ar = (real_T)
24537 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->timestamp;
24538 L4_MABX_B.SFunction1_o3_e = (real_T)
24539 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->deltatime;
24540 L4_MABX_B.SFunction1_o4_h1 = (real_T)
24541 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->delaytime;
24542 }
24543
24544 /* ... Encode Simulink signals of TX and RM blocks*/
24545 {
24546 rtican_Signal_t CAN_Sgn;
24547
24548 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
24549 /* Add or substract 0.5 in order to round to nearest integer */
24550 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_mj[0] )
24551 + 0.5);
24552 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24553 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24554
24555 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
24556 /* Add or substract 0.5 in order to round to nearest integer */
24557 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_mj[1] )
24558 + 0.5);
24559 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24560 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
24561
24562 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
24563 /* Add or substract 0.5 in order to round to nearest integer */
24564 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_mj[2] )
24565 + 0.5);
24566 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24567 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
24568
24569 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
24570 /* Add or substract 0.5 in order to round to nearest integer */
24571 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_mj[3] )
24572 + 0.5);
24573 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24574 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
24575
24576 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
24577 /* Add or substract 0.5 in order to round to nearest integer */
24578 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_mj[4] )
24579 + 0.5);
24580 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24581 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24582
24583 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
24584 /* Add or substract 0.5 in order to round to nearest integer */
24585 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_mj[5] )
24586 + 0.5);
24587 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24588 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
24589
24590 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
24591 /* Add or substract 0.5 in order to round to nearest integer */
24592 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_mj[6] )
24593 + 0.5);
24594 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24595 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
24596
24597 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
24598 /* Add or substract 0.5 in order to round to nearest integer */
24599 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_mj[7] )
24600 + 0.5);
24601 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24602 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24603 }
24604
24605 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
24606 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC], 8,
24607 &(CAN_Msg[0]), delayTime);
24608 }
24609 }
24610
24611 /* End of Outputs for SubSystem: '<S874>/PropB_XPR_FC' */
24612
24613 /* S-Function (sfix_bitop): '<S867>/Operator' */
24614 L4_MABX_B.Operator_hn = (uint8_T)(L4_MABX_B.DataTypeConversion_lq &
24615 L4_MABX_P.Operator_BitMask_gm);
24616
24617 /* DataTypeConversion: '<S867>/DataType' */
24618 L4_MABX_B.DataType_fk = L4_MABX_B.Operator_hn;
24619
24620 /* ArithShift: '<S847>/Shift_Arithmetic 2' */
24621 L4_MABX_B.Shift_Arithmetic2_e = ldexp(L4_MABX_B.DataType_fk, (-3));
24622
24623 /* DataTypeConversion: '<S847>/Data Type Conversion5' */
24624 L4_MABX_B.DataTypeConversion5_kl = (L4_MABX_B.Shift_Arithmetic2_e != 0.0);
24625
24626 /* Logic: '<S873>/Operator' */
24627 L4_MABX_B.Operator_fqm = (L4_MABX_B.TmpRTBAtOperatorInport1_i &&
24628 L4_MABX_B.DataTypeConversion5_kl);
24629
24630 /* DataTypeConversion: '<S873>/DataType' */
24631 L4_MABX_B.DataType_ok = L4_MABX_B.Operator_fqm;
24632
24633 /* Outputs for Enabled SubSystem: '<S875>/PropB_XPR_FC' incorporates:
24634 * EnablePort: '<S877>/Enable'
24635 */
24636 if (L4_MABX_B.DataType_ok) {
24637 /* S-Function (rti_commonblock): '<S877>/S-Function1' */
24638 /* This comment workarounds a code generation problem */
24639
24640 /* dSPACE RTICAN TX Message Block: "PropB_XPR_FC" Id:419366140 */
24641 {
24642 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
24643
24644 Float32 delayTime = 0.0;
24645
24646 /* ... Read status and timestamp info (previous message) */
24647 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]);
24648
24649 /* Convert timestamp */
24650 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->processed) {
24651 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->timestamp =
24652 rtk_dsts_time_to_simtime_convert
24653 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->timestamp);
24654 }
24655
24656 /* Messages with timestamp zero have been received in pause/stop state
24657 and must not be handled.
24658 */
24659 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->timestamp > 0.0) {
24660 L4_MABX_B.SFunction1_o1_gy = (real_T)
24661 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->processed;
24662 L4_MABX_B.SFunction1_o2_ge = (real_T)
24663 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->timestamp;
24664 L4_MABX_B.SFunction1_o3_ik = (real_T)
24665 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->deltatime;
24666 L4_MABX_B.SFunction1_o4_ij = (real_T)
24667 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->delaytime;
24668 }
24669
24670 /* ... Encode Simulink signals of TX and RM blocks*/
24671 {
24672 rtican_Signal_t CAN_Sgn;
24673
24674 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
24675 /* Add or substract 0.5 in order to round to nearest integer */
24676 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_mj[0] )
24677 + 0.5);
24678 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24679 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24680
24681 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
24682 /* Add or substract 0.5 in order to round to nearest integer */
24683 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_mj[1] )
24684 + 0.5);
24685 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24686 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
24687
24688 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
24689 /* Add or substract 0.5 in order to round to nearest integer */
24690 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_mj[2] )
24691 + 0.5);
24692 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24693 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
24694
24695 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
24696 /* Add or substract 0.5 in order to round to nearest integer */
24697 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_mj[3] )
24698 + 0.5);
24699 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24700 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
24701
24702 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
24703 /* Add or substract 0.5 in order to round to nearest integer */
24704 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_mj[4] )
24705 + 0.5);
24706 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24707 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24708
24709 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
24710 /* Add or substract 0.5 in order to round to nearest integer */
24711 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_mj[5] )
24712 + 0.5);
24713 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24714 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
24715
24716 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
24717 /* Add or substract 0.5 in order to round to nearest integer */
24718 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_mj[6] )
24719 + 0.5);
24720 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24721 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
24722
24723 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
24724 /* Add or substract 0.5 in order to round to nearest integer */
24725 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_mj[7] )
24726 + 0.5);
24727 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24728 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24729 }
24730
24731 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
24732 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC], 8,
24733 &(CAN_Msg[0]), delayTime);
24734 }
24735 }
24736
24737 /* End of Outputs for SubSystem: '<S875>/PropB_XPR_FC' */
24738
24739 /* S-Function (sfix_bitop): '<S863>/Operator' */
24740 L4_MABX_B.Operator_nzz = (uint8_T)(L4_MABX_B.DataTypeConversion_lq &
24741 L4_MABX_P.Operator_BitMask_az);
24742
24743 /* DataTypeConversion: '<S863>/DataType' */
24744 L4_MABX_B.DataType_oq = L4_MABX_B.Operator_nzz;
24745
24746 /* S-Function (sfix_bitop): '<S868>/Operator' */
24747 L4_MABX_B.Operator_aw = (uint8_T)(L4_MABX_B.DataTypeConversion_lq &
24748 L4_MABX_P.Operator_BitMask_pl);
24749
24750 /* DataTypeConversion: '<S868>/DataType' */
24751 L4_MABX_B.DataType_kz = L4_MABX_B.Operator_aw;
24752
24753 /* ArithShift: '<S847>/Shift_Arithmetic 3' */
24754 L4_MABX_B.Shift_Arithmetic3_hr = ldexp(L4_MABX_B.DataType_kz, (-4));
24755
24756 /* DataTypeConversion: '<S847>/Data Type Conversion6' */
24757 L4_MABX_B.DataTypeConversion6_hq = (L4_MABX_B.Shift_Arithmetic3_hr != 0.0);
24758
24759 /* Logic: '<S864>/Operator' */
24760 L4_MABX_B.Operator_nz2 = (L4_MABX_B.TmpRTBAtOperatorInport1_j &&
24761 L4_MABX_B.DataTypeConversion6_hq);
24762
24763 /* DataTypeConversion: '<S864>/DataType' */
24764 L4_MABX_B.DataType_cl = L4_MABX_B.Operator_nz2;
24765
24766 /* S-Function (sfix_bitop): '<S869>/Operator' */
24767 L4_MABX_B.Operator_ci = (uint8_T)(L4_MABX_B.DataTypeConversion_lq &
24768 L4_MABX_P.Operator_BitMask_n);
24769
24770 /* DataTypeConversion: '<S869>/DataType' */
24771 L4_MABX_B.DataType_fb = L4_MABX_B.Operator_ci;
24772
24773 /* ArithShift: '<S847>/Shift_Arithmetic 4' */
24774 L4_MABX_B.Shift_Arithmetic4_l = ldexp(L4_MABX_B.DataType_fb, (-5));
24775
24776 /* DataTypeConversion: '<S847>/Data Type Conversion7' */
24777 L4_MABX_B.DataTypeConversion7_mb = (L4_MABX_B.Shift_Arithmetic4_l != 0.0);
24778
24779 /* Logic: '<S865>/Operator' */
24780 L4_MABX_B.Operator_al = (L4_MABX_B.TmpRTBAtOperatorInport1_a &&
24781 L4_MABX_B.DataTypeConversion7_mb);
24782
24783 /* DataTypeConversion: '<S865>/DataType' */
24784 L4_MABX_B.DataType_ci = L4_MABX_B.Operator_al;
24785
24786 /* S-Function (sfix_bitop): '<S866>/Operator' */
24787 L4_MABX_B.Operator_cx = (uint8_T)(L4_MABX_B.DataTypeConversion_lq &
24788 L4_MABX_P.Operator_BitMask_e);
24789
24790 /* DataTypeConversion: '<S866>/DataType' */
24791 L4_MABX_B.DataType_ny = L4_MABX_B.Operator_cx;
24792
24793 /* ArithShift: '<S847>/Shift_Arithmetic ' */
24794 L4_MABX_B.Shift_Arithmetic_f = ldexp(L4_MABX_B.DataType_oq, (-1));
24795
24796 /* DataTypeConversion: '<S847>/Data Type Conversion3' */
24797 L4_MABX_B.DataTypeConversion3_pu = (L4_MABX_B.Shift_Arithmetic_f != 0.0);
24798
24799 /* Logic: '<S871>/Operator' */
24800 L4_MABX_B.Operator_d4 = (L4_MABX_B.TmpRTBAtOperatorInport1_b &&
24801 L4_MABX_B.DataTypeConversion3_pu);
24802
24803 /* DataTypeConversion: '<S871>/DataType' */
24804 L4_MABX_B.DataType_kd2 = L4_MABX_B.Operator_d4;
24805
24806 /* ArithShift: '<S847>/Shift_Arithmetic 1' */
24807 L4_MABX_B.Shift_Arithmetic1_e = ldexp(L4_MABX_B.DataType_ny, (-2));
24808
24809 /* DataTypeConversion: '<S847>/Data Type Conversion4' */
24810 L4_MABX_B.DataTypeConversion4_o4 = (L4_MABX_B.Shift_Arithmetic1_e != 0.0);
24811
24812 /* Logic: '<S872>/Operator' */
24813 L4_MABX_B.Operator_bc = (L4_MABX_B.TmpRTBAtOperatorInport1_o &&
24814 L4_MABX_B.DataTypeConversion4_o4);
24815
24816 /* DataTypeConversion: '<S872>/DataType' */
24817 L4_MABX_B.DataType_ml = L4_MABX_B.Operator_bc;
24818
24819 /* DataTypeConversion: '<S904>/Data Type Conversion' */
24820 L4_MABX_B.DataTypeConversion_jk = L4_MABX_B.Latitude__b;
24821
24822 /* DataTypeConversion: '<S904>/Data Type Conversion1' */
24823 L4_MABX_B.DataTypeConversion1_ct = L4_MABX_B.Longitude__h;
24824
24825 /* DataTypeConversion: '<S853>/Data Type Conversion2' incorporates:
24826 * Constant: '<S819>/enablePosRapidUpdateTX'
24827 */
24828 L4_MABX_B.DataTypeConversion2_ly = L4_MABX_P.enablePosRapidUpdateTX_Value;
24829
24830 /* Outputs for Enabled SubSystem: '<S904>/Std_PosRapidUpdate_01' incorporates:
24831 * EnablePort: '<S905>/Enable'
24832 */
24833 if (L4_MABX_B.DataTypeConversion2_ly) {
24834 /* S-Function (rti_commonblock): '<S905>/S-Function1' */
24835 /* This comment workarounds a code generation problem */
24836
24837 /* dSPACE RTICAN TX Message Block: "Std_PosRapidUpdate_01" Id:3 */
24838 {
24839 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
24840
24841 Float32 delayTime = 0.0;
24842
24843 /* ... Read status and timestamp info (previous message) */
24844 can_tp1_msg_read(can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]);
24845
24846 /* Convert timestamp */
24847 if (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->processed) {
24848 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->timestamp =
24849 rtk_dsts_time_to_simtime_convert
24850 (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->timestamp);
24851 }
24852
24853 /* Messages with timestamp zero have been received in pause/stop state
24854 and must not be handled.
24855 */
24856 if (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->timestamp > 0.0) {
24857 L4_MABX_B.SFunction1_o1_kg = (real_T)
24858 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->processed;
24859 L4_MABX_B.SFunction1_o2_gn = (real_T)
24860 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->timestamp;
24861 L4_MABX_B.SFunction1_o3_o = (real_T)
24862 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->deltatime;
24863 L4_MABX_B.SFunction1_o4_p2 = (real_T)
24864 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->delaytime;
24865 }
24866
24867 /* ... Encode Simulink signals of TX and RM blocks*/
24868 {
24869 rtican_Signal_t CAN_Sgn;
24870
24871 /* ...... "Latitude_" (0|32, standard signal, signed int, little endian) */
24872 /* Add or substract 0.5 in order to round to nearest integer */
24873 if (( L4_MABX_B.DataTypeConversion_jk - ( 0 ) ) / 1.0E-7 < -0.5)
24874 CAN_Sgn.SignedSgn = (Int32) (( L4_MABX_B.DataTypeConversion_jk - ( 0 )
24875 ) / 1.0E-7 - 0.5);
24876 else
24877 CAN_Sgn.SignedSgn = (Int32) (( L4_MABX_B.DataTypeConversion_jk - ( 0 )
24878 ) / 1.0E-7 + 0.5);
24879 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24880 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte1;
24881 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte2;
24882 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte3;
24883
24884 /* ...... "Longitude_" (32|32, standard signal, signed int, little endian) */
24885 /* Add or substract 0.5 in order to round to nearest integer */
24886 if (( L4_MABX_B.DataTypeConversion1_ct - ( 0 ) ) / 1.0E-7 < -0.5)
24887 CAN_Sgn.SignedSgn = (Int32) (( L4_MABX_B.DataTypeConversion1_ct - ( 0 )
24888 ) / 1.0E-7 - 0.5);
24889 else
24890 CAN_Sgn.SignedSgn = (Int32) (( L4_MABX_B.DataTypeConversion1_ct - ( 0 )
24891 ) / 1.0E-7 + 0.5);
24892 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24893 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte1;
24894 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte2;
24895 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte3;
24896 }
24897
24898 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
24899 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3], 8, &(CAN_Msg[0]),
24900 delayTime);
24901 }
24902 }
24903
24904 /* End of Outputs for SubSystem: '<S904>/Std_PosRapidUpdate_01' */
24905
24906 /* Outputs for Enabled SubSystem: '<S855>/CCVS1_00' incorporates:
24907 * EnablePort: '<S857>/Enable'
24908 */
24909 /* Outputs for Enabled SubSystem: '<S854>/CCVS1_00' incorporates:
24910 * EnablePort: '<S856>/Enable'
24911 */
24912 /* Constant: '<S845>/Enable_TX_CCVS1_00' */
24913 if (L4_MABX_P.Enable_TX_CCVS1_00_Value) {
24914 /* S-Function (rti_commonblock): '<S856>/S-Function1' */
24915 /* This comment workarounds a code generation problem */
24916
24917 /* dSPACE RTICAN TX Message Block: "CCVS1_00" Id:419361024 */
24918 {
24919 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
24920
24921 Float32 delayTime = 0.0;
24922
24923 /* ... Read status and timestamp info (previous message) */
24924 can_tp1_msg_read(can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]);
24925
24926 /* Convert timestamp */
24927 if (can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->processed) {
24928 can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->timestamp =
24929 rtk_dsts_time_to_simtime_convert
24930 (can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->timestamp);
24931 }
24932
24933 /* Messages with timestamp zero have been received in pause/stop state
24934 and must not be handled.
24935 */
24936 if (can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->timestamp > 0.0) {
24937 L4_MABX_B.SFunction1_o1_lt = (real_T)
24938 can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->processed;
24939 L4_MABX_B.SFunction1_o2_kx = (real_T)
24940 can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->timestamp;
24941 L4_MABX_B.SFunction1_o3_a3 = (real_T)
24942 can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->deltatime;
24943 L4_MABX_B.SFunction1_o4_lf = (real_T)
24944 can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->delaytime;
24945 }
24946
24947 /* ... Encode Simulink signals of TX and RM blocks*/
24948 {
24949 rtican_Signal_t CAN_Sgn;
24950
24951 /* ...... "TwoSpeedAxleSwitch" (0|2, standard signal, unsigned int, little endian) */
24952 /* Add or substract 0.5 in order to round to nearest integer */
24953 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.TwoSpeedAxleSwitch_h ) + 0.5);
24954 CAN_Sgn.UnsignedSgn &= 0x00000003;
24955 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24956
24957 /* ...... "ParkingBrakeSwitch" (2|2, standard signal, unsigned int, little endian) */
24958 /* Add or substract 0.5 in order to round to nearest integer */
24959 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkingBrakeSwitch_g ) + 0.5);
24960 CAN_Sgn.UnsignedSgn &= 0x00000003;
24961 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24962 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24963
24964 /* ...... "CruiseCtrlPauseSwitch" (4|2, standard signal, unsigned int, little endian) */
24965 /* Add or substract 0.5 in order to round to nearest integer */
24966 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlPauseSwitch_n ) +
24967 0.5);
24968 CAN_Sgn.UnsignedSgn &= 0x00000003;
24969 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24970 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24971
24972 /* ...... "ParkBrakeReleaseInhibitRq" (6|2, standard signal, unsigned int, little endian) */
24973 /* Add or substract 0.5 in order to round to nearest integer */
24974 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkBrakeReleaseInhibitRq_n )
24975 + 0.5);
24976 CAN_Sgn.UnsignedSgn &= 0x00000003;
24977 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24978 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24979
24980 /* ...... "WheelBasedVehicleSpeed" (8|16, standard signal, unsigned int, little endian) */
24981 /* Add or substract 0.5 in order to round to nearest integer */
24982 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.WheelBasedVehicleSpeed_n5 -
24983 ( 0 ) ) / 0.00390625 + 0.5);
24984 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
24985 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
24986 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte1;
24987
24988 /* ...... "CruiseCtrlActive" (24|2, standard signal, unsigned int, little endian) */
24989 /* Add or substract 0.5 in order to round to nearest integer */
24990 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlActive_i ) + 0.5);
24991 CAN_Sgn.UnsignedSgn &= 0x00000003;
24992 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
24993
24994 /* ...... "CruiseCtrlEnableSwitch" (26|2, standard signal, unsigned int, little endian) */
24995 /* Add or substract 0.5 in order to round to nearest integer */
24996 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlEnableSwitch_c1 )
24997 + 0.5);
24998 CAN_Sgn.UnsignedSgn &= 0x00000003;
24999 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25000 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25001
25002 /* ...... "BrakeSwitch" (28|2, standard signal, unsigned int, little endian) */
25003 /* Add or substract 0.5 in order to round to nearest integer */
25004 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.BrakeSwitch_m0 ) + 0.5);
25005 CAN_Sgn.UnsignedSgn &= 0x00000003;
25006 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25007 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25008
25009 /* ...... "ClutchSwitch" (30|2, standard signal, unsigned int, little endian) */
25010 /* Add or substract 0.5 in order to round to nearest integer */
25011 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ClutchSwitch_e ) + 0.5);
25012 CAN_Sgn.UnsignedSgn &= 0x00000003;
25013 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25014 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25015
25016 /* ...... "CruiseCtrlSetSwitch" (32|2, standard signal, unsigned int, little endian) */
25017 /* Add or substract 0.5 in order to round to nearest integer */
25018 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlSetSwitch_o ) +
25019 0.5);
25020 CAN_Sgn.UnsignedSgn &= 0x00000003;
25021 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25022
25023 /* ...... "CruiseCtrlCoastSwitch" (34|2, standard signal, unsigned int, little endian) */
25024 /* Add or substract 0.5 in order to round to nearest integer */
25025 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlCoastSwitch_m ) +
25026 0.5);
25027 CAN_Sgn.UnsignedSgn &= 0x00000003;
25028 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25029 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25030
25031 /* ...... "CruiseCtrlResumeSwitch" (36|2, standard signal, unsigned int, little endian) */
25032 /* Add or substract 0.5 in order to round to nearest integer */
25033 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlResumeSwitch_i ) +
25034 0.5);
25035 CAN_Sgn.UnsignedSgn &= 0x00000003;
25036 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25037 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25038
25039 /* ...... "CruiseCtrlAccelerateSwitch" (38|2, standard signal, unsigned int, little endian) */
25040 /* Add or substract 0.5 in order to round to nearest integer */
25041 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlAccelerateSwitch_i
25042 ) + 0.5);
25043 CAN_Sgn.UnsignedSgn &= 0x00000003;
25044 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25045 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25046
25047 /* ...... "CruiseCtrlSetSpeed" (40|8, standard signal, unsigned int, little endian) */
25048 /* Add or substract 0.5 in order to round to nearest integer */
25049 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlSetSpeed_k ) + 0.5);
25050 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25051 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
25052
25053 /* ...... "PTOGovernorState" (48|5, standard signal, unsigned int, little endian) */
25054 /* Add or substract 0.5 in order to round to nearest integer */
25055 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.PTOGovernorState_f ) + 0.5);
25056 CAN_Sgn.UnsignedSgn &= 0x0000001F;
25057 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
25058
25059 /* ...... "CruiseCtrlStates" (53|3, standard signal, unsigned int, little endian) */
25060 /* Add or substract 0.5 in order to round to nearest integer */
25061 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlStates_o ) + 0.5);
25062 CAN_Sgn.UnsignedSgn &= 0x00000007;
25063 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 5;
25064 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
25065
25066 /* ...... "EngIdleIncrementSwitch" (56|2, standard signal, unsigned int, little endian) */
25067 /* Add or substract 0.5 in order to round to nearest integer */
25068 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngIdleIncrementSwitch_b ) +
25069 0.5);
25070 CAN_Sgn.UnsignedSgn &= 0x00000003;
25071 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25072
25073 /* ...... "EngIdleDecrementSwitch" (58|2, standard signal, unsigned int, little endian) */
25074 /* Add or substract 0.5 in order to round to nearest integer */
25075 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngIdleDecrementSwitch_b ) +
25076 0.5);
25077 CAN_Sgn.UnsignedSgn &= 0x00000003;
25078 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25079 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25080
25081 /* ...... "EngTestModeSwitch" (60|2, standard signal, unsigned int, little endian) */
25082 /* Add or substract 0.5 in order to round to nearest integer */
25083 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngTestModeSwitch_a ) + 0.5);
25084 CAN_Sgn.UnsignedSgn &= 0x00000003;
25085 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25086 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25087
25088 /* ...... "EngShutdownOverrideSwitch" (62|2, standard signal, unsigned int, little endian) */
25089 /* Add or substract 0.5 in order to round to nearest integer */
25090 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngShutdownOverrideSwitch_m )
25091 + 0.5);
25092 CAN_Sgn.UnsignedSgn &= 0x00000003;
25093 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25094 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25095 }
25096
25097 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
25098 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100], 8,
25099 &(CAN_Msg[0]), delayTime);
25100 }
25101
25102 /* S-Function (rti_commonblock): '<S857>/S-Function1' */
25103 /* This comment workarounds a code generation problem */
25104
25105 /* dSPACE RTICAN TX Message Block: "CCVS1_00" Id:218034432 */
25106 {
25107 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
25108
25109 Float32 delayTime = 0.0;
25110
25111 /* ... Read status and timestamp info (previous message) */
25112 can_tp1_msg_read(can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]);
25113
25114 /* Convert timestamp */
25115 if (can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->processed) {
25116 can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->timestamp =
25117 rtk_dsts_time_to_simtime_convert
25118 (can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->timestamp);
25119 }
25120
25121 /* Messages with timestamp zero have been received in pause/stop state
25122 and must not be handled.
25123 */
25124 if (can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->timestamp > 0.0) {
25125 L4_MABX_B.SFunction1_o1_c = (real_T)
25126 can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->processed;
25127 L4_MABX_B.SFunction1_o2_kz = (real_T)
25128 can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->timestamp;
25129 L4_MABX_B.SFunction1_o3_b = (real_T)
25130 can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->deltatime;
25131 L4_MABX_B.SFunction1_o4_o2 = (real_T)
25132 can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->delaytime;
25133 }
25134
25135 /* ... Encode Simulink signals of TX and RM blocks*/
25136 {
25137 rtican_Signal_t CAN_Sgn;
25138
25139 /* ...... "TwoSpeedAxleSwitch" (0|2, standard signal, unsigned int, little endian) */
25140 /* Add or substract 0.5 in order to round to nearest integer */
25141 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.TwoSpeedAxleSwitch_h5 ) +
25142 0.5);
25143 CAN_Sgn.UnsignedSgn &= 0x00000003;
25144 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25145
25146 /* ...... "ParkingBrakeSwitch" (2|2, standard signal, unsigned int, little endian) */
25147 /* Add or substract 0.5 in order to round to nearest integer */
25148 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkingBrakeSwitch_gy ) +
25149 0.5);
25150 CAN_Sgn.UnsignedSgn &= 0x00000003;
25151 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25152 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25153
25154 /* ...... "CruiseCtrlPauseSwitch" (4|2, standard signal, unsigned int, little endian) */
25155 /* Add or substract 0.5 in order to round to nearest integer */
25156 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlPauseSwitch_nf ) +
25157 0.5);
25158 CAN_Sgn.UnsignedSgn &= 0x00000003;
25159 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25160 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25161
25162 /* ...... "ParkBrakeReleaseInhibitRq" (6|2, standard signal, unsigned int, little endian) */
25163 /* Add or substract 0.5 in order to round to nearest integer */
25164 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkBrakeReleaseInhibitRq_nf
25165 ) + 0.5);
25166 CAN_Sgn.UnsignedSgn &= 0x00000003;
25167 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25168 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25169
25170 /* ...... "WheelBasedVehicleSpeed" (8|16, standard signal, unsigned int, little endian) */
25171 /* Add or substract 0.5 in order to round to nearest integer */
25172 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.WheelBasedVehicleSpeed_n5s -
25173 ( 0 ) ) / 0.00390625 + 0.5);
25174 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
25175 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
25176 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte1;
25177
25178 /* ...... "CruiseCtrlActive" (24|2, standard signal, unsigned int, little endian) */
25179 /* Add or substract 0.5 in order to round to nearest integer */
25180 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlActive_i5 ) + 0.5);
25181 CAN_Sgn.UnsignedSgn &= 0x00000003;
25182 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25183
25184 /* ...... "CruiseCtrlEnableSwitch" (26|2, standard signal, unsigned int, little endian) */
25185 /* Add or substract 0.5 in order to round to nearest integer */
25186 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlEnableSwitch_c1b )
25187 + 0.5);
25188 CAN_Sgn.UnsignedSgn &= 0x00000003;
25189 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25190 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25191
25192 /* ...... "BrakeSwitch" (28|2, standard signal, unsigned int, little endian) */
25193 /* Add or substract 0.5 in order to round to nearest integer */
25194 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.BrakeSwitch_m02 ) + 0.5);
25195 CAN_Sgn.UnsignedSgn &= 0x00000003;
25196 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25197 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25198
25199 /* ...... "ClutchSwitch" (30|2, standard signal, unsigned int, little endian) */
25200 /* Add or substract 0.5 in order to round to nearest integer */
25201 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ClutchSwitch_e1 ) + 0.5);
25202 CAN_Sgn.UnsignedSgn &= 0x00000003;
25203 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25204 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25205
25206 /* ...... "CruiseCtrlSetSwitch" (32|2, standard signal, unsigned int, little endian) */
25207 /* Add or substract 0.5 in order to round to nearest integer */
25208 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlSetSwitch_o4 ) +
25209 0.5);
25210 CAN_Sgn.UnsignedSgn &= 0x00000003;
25211 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25212
25213 /* ...... "CruiseCtrlCoastSwitch" (34|2, standard signal, unsigned int, little endian) */
25214 /* Add or substract 0.5 in order to round to nearest integer */
25215 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlCoastSwitch_mc ) +
25216 0.5);
25217 CAN_Sgn.UnsignedSgn &= 0x00000003;
25218 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25219 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25220
25221 /* ...... "CruiseCtrlResumeSwitch" (36|2, standard signal, unsigned int, little endian) */
25222 /* Add or substract 0.5 in order to round to nearest integer */
25223 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlResumeSwitch_ir )
25224 + 0.5);
25225 CAN_Sgn.UnsignedSgn &= 0x00000003;
25226 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25227 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25228
25229 /* ...... "CruiseCtrlAccelerateSwitch" (38|2, standard signal, unsigned int, little endian) */
25230 /* Add or substract 0.5 in order to round to nearest integer */
25231 CAN_Sgn.UnsignedSgn = (UInt32)
25232 (( L4_MABX_B.CruiseCtrlAccelerateSwitch_if ) + 0.5);
25233 CAN_Sgn.UnsignedSgn &= 0x00000003;
25234 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25235 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25236
25237 /* ...... "CruiseCtrlSetSpeed" (40|8, standard signal, unsigned int, little endian) */
25238 /* Add or substract 0.5 in order to round to nearest integer */
25239 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlSetSpeed_ku ) +
25240 0.5);
25241 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25242 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
25243
25244 /* ...... "PTOGovernorState" (48|5, standard signal, unsigned int, little endian) */
25245 /* Add or substract 0.5 in order to round to nearest integer */
25246 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.PTOGovernorState_fm ) + 0.5);
25247 CAN_Sgn.UnsignedSgn &= 0x0000001F;
25248 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
25249
25250 /* ...... "CruiseCtrlStates" (53|3, standard signal, unsigned int, little endian) */
25251 /* Add or substract 0.5 in order to round to nearest integer */
25252 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlStates_og ) + 0.5);
25253 CAN_Sgn.UnsignedSgn &= 0x00000007;
25254 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 5;
25255 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
25256
25257 /* ...... "EngIdleIncrementSwitch" (56|2, standard signal, unsigned int, little endian) */
25258 /* Add or substract 0.5 in order to round to nearest integer */
25259 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngIdleIncrementSwitch_bd )
25260 + 0.5);
25261 CAN_Sgn.UnsignedSgn &= 0x00000003;
25262 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25263
25264 /* ...... "EngIdleDecrementSwitch" (58|2, standard signal, unsigned int, little endian) */
25265 /* Add or substract 0.5 in order to round to nearest integer */
25266 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngIdleDecrementSwitch_b1 )
25267 + 0.5);
25268 CAN_Sgn.UnsignedSgn &= 0x00000003;
25269 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25270 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25271
25272 /* ...... "EngTestModeSwitch" (60|2, standard signal, unsigned int, little endian) */
25273 /* Add or substract 0.5 in order to round to nearest integer */
25274 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngTestModeSwitch_au ) + 0.5);
25275 CAN_Sgn.UnsignedSgn &= 0x00000003;
25276 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25277 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25278
25279 /* ...... "EngShutdownOverrideSwitch" (62|2, standard signal, unsigned int, little endian) */
25280 /* Add or substract 0.5 in order to round to nearest integer */
25281 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngShutdownOverrideSwitch_mv
25282 ) + 0.5);
25283 CAN_Sgn.UnsignedSgn &= 0x00000003;
25284 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25285 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25286 }
25287
25288 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
25289 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100], 8,
25290 &(CAN_Msg[0]), delayTime);
25291 }
25292 }
25293
25294 /* End of Constant: '<S845>/Enable_TX_CCVS1_00' */
25295 /* End of Outputs for SubSystem: '<S854>/CCVS1_00' */
25296 /* End of Outputs for SubSystem: '<S855>/CCVS1_00' */
25297
25298 /* DataTypeConversion: '<S851>/Data Type Conversion' incorporates:
25299 * Constant: '<S850>/Constant'
25300 */
25301 L4_MABX_B.DataTypeConversion_ktn = L4_MABX_P.Constant_Value_px;
25302
25303 /* DataTypeConversion: '<S851>/Data Type Conversion1' */
25304 L4_MABX_B.DataTypeConversion1_p = (uint16_T)L4_MABX_B.DataTypeConversion_ktn;
25305
25306 /* S-Function (sfix_bitop): '<S882>/Operator' */
25307 L4_MABX_B.Operator_bx = (uint16_T)(L4_MABX_B.DataTypeConversion1_p &
25308 L4_MABX_P.Operator_BitMask_bz);
25309
25310 /* DataTypeConversion: '<S882>/DataType' */
25311 tmp = L4_MABX_B.Operator_bx;
25312 if (tmp > 255) {
25313 tmp = 255U;
25314 }
25315
25316 L4_MABX_B.DataType_ec = (uint8_T)tmp;
25317
25318 /* End of DataTypeConversion: '<S882>/DataType' */
25319
25320 /* S-Function (sfix_bitop): '<S883>/Operator' */
25321 L4_MABX_B.Operator_e = (uint16_T)(L4_MABX_B.DataTypeConversion1_p &
25322 L4_MABX_P.Operator_BitMask_bv);
25323
25324 /* DataTypeConversion: '<S883>/DataType' */
25325 L4_MABX_B.DataType_i2v = L4_MABX_B.Operator_e;
25326
25327 /* ArithShift: '<S851>/Shift_Arithmetic ' */
25328 L4_MABX_B.Shift_Arithmetic_h4 = (uint16_T)((uint32_T)L4_MABX_B.DataType_i2v >>
25329 8);
25330
25331 /* DataTypeConversion: '<S851>/Data Type Conversion2' */
25332 tmp = L4_MABX_B.Shift_Arithmetic_h4;
25333 if (tmp > 255) {
25334 tmp = 255U;
25335 }
25336
25337 L4_MABX_B.DataTypeConversion2_gk = (uint8_T)tmp;
25338
25339 /* End of DataTypeConversion: '<S851>/Data Type Conversion2' */
25340
25341 /* DataTypeConversion: '<S846>/Data Type Conversion1' incorporates:
25342 * Constant: '<S851>/Constant'
25343 */
25344 L4_MABX_B.DataTypeConversion1_b[0] = L4_MABX_P.Constant_Value_kb;
25345 L4_MABX_B.DataTypeConversion1_b[1] = L4_MABX_P.Constant_Value_kb;
25346 L4_MABX_B.DataTypeConversion1_b[2] = L4_MABX_P.Constant_Value_kb;
25347 L4_MABX_B.DataTypeConversion1_b[3] = L4_MABX_P.Constant_Value_kb;
25348 L4_MABX_B.DataTypeConversion1_b[4] = L4_MABX_P.Constant_Value_kb;
25349 L4_MABX_B.DataTypeConversion1_b[5] = L4_MABX_P.Constant_Value_kb;
25350 L4_MABX_B.DataTypeConversion1_b[6] = L4_MABX_B.DataType_ec;
25351 L4_MABX_B.DataTypeConversion1_b[7] = L4_MABX_B.DataTypeConversion2_gk;
25352
25353 /* RateTransition: '<S858>/TmpRTBAtHiddenBuf_InsertedFor_PropB_REAX_5_E4_at_inport_10Inport1' */
25354 L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_P = L4_MABX_B.Operator_md;
25355
25356 /* Outputs for Enabled SubSystem: '<S858>/PropB_REAX_5_E4' incorporates:
25357 * EnablePort: '<S860>/Enable'
25358 */
25359 if (L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_P) {
25360 /* S-Function (rti_commonblock): '<S860>/S-Function1' incorporates:
25361 * Constant: '<S858>/Constant'
25362 * Constant: '<S858>/Constant1'
25363 */
25364 /* This comment workarounds a code generation problem */
25365
25366 /* dSPACE RTICAN TX Message Block: "PropB_REAX_5_E4" Id:419429092 */
25367 {
25368 static UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25369 0x00 };
25370
25371 Float32 delayTime = 0.0;
25372
25373 /* link this pointer to CAN_Msg for use in initialize_io_units() */
25374 CANTP1_PTR_M1_C2_XTD_0x18FFFAE4 = &(CAN_Msg[0]);
25375
25376 /* ... perform loop-back if required */
25377 if (L4_MABX_P.Constant1_Value_nl > 0.5) {
25378 /* ... updating the used tx-clientbuffer */
25379 can_tp1_msg_update_all( CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->module,
25380 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->queue );
25381
25382 /* ... Read status and timestamp info perform loop-back (previous message) */
25383 can_tp1_tx_msg_read_loopback(CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4,
25384 8, // datalen
25385 &(CAN_Msg[0]),
25386 CANTP1_RX_SPMSG_M1_C2_XTD);
25387
25388 /* Convert timestamp */
25389 if (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->processed) {
25390 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->timestamp =
25391 rtk_dsts_time_to_simtime_convert
25392 (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->timestamp);
25393 }
25394 } else {
25395 /* ... Read status and timestamp info (previous message) */
25396 can_tp1_msg_read_from_dsmcr(CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4);
25397
25398 /* Convert timestamp */
25399 if (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->processed) {
25400 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->timestamp =
25401 rtk_dsts_time_to_simtime_convert
25402 (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->timestamp);
25403 }
25404 }
25405
25406 /* Messages with timestamp zero have been received in pause/stop state
25407 and must not be handled.
25408 */
25409 if (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->timestamp > 0.0) {
25410 L4_MABX_B.SFunction1_o1_pc = (real_T)
25411 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->processed;
25412 L4_MABX_B.SFunction1_o2_ad = (real_T)
25413 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->timestamp;
25414 L4_MABX_B.SFunction1_o3_gr = (real_T)
25415 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->deltatime;
25416 L4_MABX_B.SFunction1_o4_o0 = (real_T)
25417 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->delaytime;
25418 }
25419
25420 /* ... Encode Simulink signals of TX and RM blocks*/
25421 {
25422 rtican_Signal_t CAN_Sgn;
25423 UInt32 i;
25424
25425 /* Initialize the static message data to zero */
25426 for (i=0; i<8; i++ )
25427 CAN_Msg[i] = 0;
25428
25429 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
25430 /* Add or substract 0.5 in order to round to nearest integer */
25431 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_b[0] ) +
25432 0.5);
25433 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25434 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25435
25436 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
25437 /* Add or substract 0.5 in order to round to nearest integer */
25438 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_b[1] ) +
25439 0.5);
25440 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25441 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
25442
25443 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
25444 /* Add or substract 0.5 in order to round to nearest integer */
25445 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_b[2] ) +
25446 0.5);
25447 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25448 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
25449
25450 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
25451 /* Add or substract 0.5 in order to round to nearest integer */
25452 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_b[3] ) +
25453 0.5);
25454 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25455 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25456
25457 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
25458 /* Add or substract 0.5 in order to round to nearest integer */
25459 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_b[4] ) +
25460 0.5);
25461 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25462 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25463
25464 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
25465 /* Add or substract 0.5 in order to round to nearest integer */
25466 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_b[5] ) +
25467 0.5);
25468 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25469 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
25470
25471 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
25472 /* Add or substract 0.5 in order to round to nearest integer */
25473 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_b[6] ) +
25474 0.5);
25475 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25476 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
25477
25478 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
25479 /* Add or substract 0.5 in order to round to nearest integer */
25480 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_b[7] ) +
25481 0.5);
25482 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25483 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25484 }
25485
25486 delayTime = (Float32) L4_MABX_P.Constant_Value_b / (1700);
25487
25488 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
25489 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FFFAE4], 8,
25490 &(CAN_Msg[0]), delayTime);
25491 }
25492 }
25493
25494 /* End of Outputs for SubSystem: '<S858>/PropB_REAX_5_E4' */
25495
25496 /* RateTransition: '<S859>/TmpRTBAtHiddenBuf_InsertedFor_PropB_REAX_5_E4_at_inport_10Inport1' */
25497 L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_g = L4_MABX_B.EnablePropB_ReAX_CAN6;
25498
25499 /* Outputs for Enabled SubSystem: '<S859>/PropB_REAX_5_E4' incorporates:
25500 * EnablePort: '<S861>/Enable'
25501 */
25502 if (L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_g) {
25503 /* S-Function (rti_commonblock): '<S861>/S-Function1' incorporates:
25504 * Constant: '<S859>/Constant'
25505 * Constant: '<S859>/Constant1'
25506 */
25507 /* This comment workarounds a code generation problem */
25508
25509 /* dSPACE RTICAN TX Message Block: "PropB_REAX_5_E4" Id:419429092 */
25510 {
25511 static UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25512 0x00 };
25513
25514 Float32 delayTime = 0.0;
25515
25516 /* link this pointer to CAN_Msg for use in initialize_io_units() */
25517 CANTP1_PTR_M3_C2_XTD_0x18FFFAE4 = &(CAN_Msg[0]);
25518
25519 /* ... perform loop-back if required */
25520 if (L4_MABX_P.Constant1_Value_pi > 0.5) {
25521 /* ... updating the used tx-clientbuffer */
25522 can_tp1_msg_update_all( CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->module,
25523 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->queue );
25524
25525 /* ... Read status and timestamp info perform loop-back (previous message) */
25526 can_tp1_tx_msg_read_loopback(CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4,
25527 8, // datalen
25528 &(CAN_Msg[0]),
25529 CANTP1_RX_SPMSG_M3_C2_XTD);
25530
25531 /* Convert timestamp */
25532 if (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->processed) {
25533 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->timestamp =
25534 rtk_dsts_time_to_simtime_convert
25535 (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->timestamp);
25536 }
25537 } else {
25538 /* ... Read status and timestamp info (previous message) */
25539 can_tp1_msg_read_from_dsmcr(CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4);
25540
25541 /* Convert timestamp */
25542 if (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->processed) {
25543 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->timestamp =
25544 rtk_dsts_time_to_simtime_convert
25545 (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->timestamp);
25546 }
25547 }
25548
25549 /* Messages with timestamp zero have been received in pause/stop state
25550 and must not be handled.
25551 */
25552 if (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->timestamp > 0.0) {
25553 L4_MABX_B.SFunction1_o1_mw = (real_T)
25554 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->processed;
25555 L4_MABX_B.SFunction1_o2_f = (real_T)
25556 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->timestamp;
25557 L4_MABX_B.SFunction1_o3_d = (real_T)
25558 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->deltatime;
25559 L4_MABX_B.SFunction1_o4_e3 = (real_T)
25560 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->delaytime;
25561 }
25562
25563 /* ... Encode Simulink signals of TX and RM blocks*/
25564 {
25565 rtican_Signal_t CAN_Sgn;
25566 UInt32 i;
25567
25568 /* Initialize the static message data to zero */
25569 for (i=0; i<8; i++ )
25570 CAN_Msg[i] = 0;
25571
25572 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
25573 /* Add or substract 0.5 in order to round to nearest integer */
25574 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_b[0] ) +
25575 0.5);
25576 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25577 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25578
25579 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
25580 /* Add or substract 0.5 in order to round to nearest integer */
25581 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_b[1] ) +
25582 0.5);
25583 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25584 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
25585
25586 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
25587 /* Add or substract 0.5 in order to round to nearest integer */
25588 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_b[2] ) +
25589 0.5);
25590 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25591 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
25592
25593 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
25594 /* Add or substract 0.5 in order to round to nearest integer */
25595 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_b[3] ) +
25596 0.5);
25597 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25598 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25599
25600 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
25601 /* Add or substract 0.5 in order to round to nearest integer */
25602 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_b[4] ) +
25603 0.5);
25604 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25605 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25606
25607 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
25608 /* Add or substract 0.5 in order to round to nearest integer */
25609 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_b[5] ) +
25610 0.5);
25611 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25612 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
25613
25614 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
25615 /* Add or substract 0.5 in order to round to nearest integer */
25616 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_b[6] ) +
25617 0.5);
25618 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25619 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
25620
25621 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
25622 /* Add or substract 0.5 in order to round to nearest integer */
25623 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_b[7] ) +
25624 0.5);
25625 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25626 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25627 }
25628
25629 delayTime = (Float32) L4_MABX_P.Constant_Value_kh / (1700);
25630
25631 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
25632 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0X18FFFAE4], 8,
25633 &(CAN_Msg[0]), delayTime);
25634 }
25635 }
25636
25637 /* End of Outputs for SubSystem: '<S859>/PropB_REAX_5_E4' */
25638
25639 /* DataTypeConversion: '<S878>/Data Type Conversion' */
25640 L4_MABX_B.DataTypeConversion_mf = L4_MABX_B.SID_f;
25641
25642 /* DataTypeConversion: '<S878>/Data Type Conversion1' */
25643 L4_MABX_B.DataTypeConversion1_in = L4_MABX_B.COGReference_p;
25644
25645 /* DataTypeConversion: '<S878>/Data Type Conversion2' */
25646 L4_MABX_B.DataTypeConversion2_j = L4_MABX_B.CourseOverGround_d;
25647
25648 /* DataTypeConversion: '<S878>/Data Type Conversion3' */
25649 L4_MABX_B.DataTypeConversion3_g = L4_MABX_B.SpeedOverGround_c;
25650
25651 /* DataTypeConversion: '<S848>/Data Type Conversion2' incorporates:
25652 * Constant: '<S819>/enableCOGSRapidUpdateTX'
25653 */
25654 L4_MABX_B.DataTypeConversion2_eu = L4_MABX_P.enableCOGSRapidUpdateTX_Value;
25655
25656 /* Outputs for Enabled SubSystem: '<S878>/Std_COGSOGRapidUpdate_01' incorporates:
25657 * EnablePort: '<S879>/Enable'
25658 */
25659 if (L4_MABX_B.DataTypeConversion2_eu) {
25660 /* S-Function (rti_commonblock): '<S879>/S-Function1' incorporates:
25661 * Constant: '<S878>/Constant'
25662 * Constant: '<S878>/Constant1'
25663 */
25664 /* This comment workarounds a code generation problem */
25665
25666 /* dSPACE RTICAN TX Message Block: "Std_COGSOGRapidUpdate_01" Id:7 */
25667 {
25668 static UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25669 0x00 };
25670
25671 Float32 delayTime = 0.0;
25672
25673 /* link this pointer to CAN_Msg for use in initialize_io_units() */
25674 CANTP1_PTR_M3_C2_STD_0x7 = &(CAN_Msg[0]);
25675
25676 /* ... perform loop-back if required */
25677 if (L4_MABX_P.Constant1_Value_ar > 0.5) {
25678 /* ... updating the used tx-clientbuffer */
25679 can_tp1_msg_update_all( CANTP1_TX_M3_C2_MCRCLT_STD_0X7->module,
25680 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->queue );
25681
25682 /* ... Read status and timestamp info perform loop-back (previous message) */
25683 can_tp1_tx_msg_read_loopback(CANTP1_TX_M3_C2_MCRCLT_STD_0X7,
25684 8, // datalen
25685 &(CAN_Msg[0]),
25686 CANTP1_RX_SPMSG_M3_C2_STD);
25687
25688 /* Convert timestamp */
25689 if (CANTP1_TX_M3_C2_MCRCLT_STD_0X7->processed) {
25690 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->timestamp =
25691 rtk_dsts_time_to_simtime_convert
25692 (CANTP1_TX_M3_C2_MCRCLT_STD_0X7->timestamp);
25693 }
25694 } else {
25695 /* ... Read status and timestamp info (previous message) */
25696 can_tp1_msg_read_from_dsmcr(CANTP1_TX_M3_C2_MCRCLT_STD_0X7);
25697
25698 /* Convert timestamp */
25699 if (CANTP1_TX_M3_C2_MCRCLT_STD_0X7->processed) {
25700 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->timestamp =
25701 rtk_dsts_time_to_simtime_convert
25702 (CANTP1_TX_M3_C2_MCRCLT_STD_0X7->timestamp);
25703 }
25704 }
25705
25706 /* Messages with timestamp zero have been received in pause/stop state
25707 and must not be handled.
25708 */
25709 if (CANTP1_TX_M3_C2_MCRCLT_STD_0X7->timestamp > 0.0) {
25710 L4_MABX_B.SFunction1_o1_ng = (real_T)
25711 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->processed;
25712 L4_MABX_B.SFunction1_o2_o = (real_T)
25713 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->timestamp;
25714 L4_MABX_B.SFunction1_o3_nb = (real_T)
25715 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->deltatime;
25716 L4_MABX_B.SFunction1_o4_a = (real_T)
25717 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->delaytime;
25718 }
25719
25720 /* ... Encode Simulink signals of TX and RM blocks*/
25721 {
25722 rtican_Signal_t CAN_Sgn;
25723 UInt32 i;
25724
25725 /* Initialize the static message data to zero */
25726 for (i=0; i<8; i++ )
25727 CAN_Msg[i] = 0;
25728
25729 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
25730 /* Add or substract 0.5 in order to round to nearest integer */
25731 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_mf ) +
25732 0.5);
25733 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25734 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25735
25736 /* ...... "COGReference" (8|2, standard signal, unsigned int, little endian) */
25737 /* Add or substract 0.5 in order to round to nearest integer */
25738 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_in ) +
25739 0.5);
25740 CAN_Sgn.UnsignedSgn &= 0x00000003;
25741 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
25742
25743 /* ...... "CourseOverGround" (16|16, standard signal, unsigned int, little endian) */
25744 /* Add or substract 0.5 in order to round to nearest integer */
25745 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion2_j - ( 0 )
25746 ) / 0.0001 + 0.5);
25747 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
25748 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
25749 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte1;
25750
25751 /* ...... "SpeedOverGround" (32|16, standard signal, unsigned int, little endian) */
25752 /* Add or substract 0.5 in order to round to nearest integer */
25753 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion3_g - ( 0 )
25754 ) / 0.01 + 0.5);
25755 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
25756 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25757 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte1;
25758 }
25759
25760 /* mask unused bits with '1' */
25761 CAN_Msg[1] |= 0xFC;
25762 CAN_Msg[6] |= 0xFF;
25763 CAN_Msg[7] |= 0xFF;
25764 delayTime = (Float32) L4_MABX_P.Constant_Value_ki / (2000);
25765
25766 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
25767 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X7], 8, &(CAN_Msg[0]),
25768 delayTime);
25769 }
25770 }
25771
25772 /* End of Outputs for SubSystem: '<S878>/Std_COGSOGRapidUpdate_01' */
25773
25774 /* DataTypeConversion: '<S849>/Data Type Conversion2' incorporates:
25775 * Constant: '<S819>/enableEBC1_8B_TX'
25776 */
25777 L4_MABX_B.DataTypeConversion2_d2 = L4_MABX_P.enableEBC1_8B_TX_Value;
25778
25779 /* Outputs for Enabled SubSystem: '<S880>/EBC1_TX' incorporates:
25780 * EnablePort: '<S881>/Enable'
25781 */
25782 if (L4_MABX_B.DataTypeConversion2_d2) {
25783 /* S-Function (rti_commonblock): '<S881>/S-Function1' */
25784 /* This comment workarounds a code generation problem */
25785
25786 /* dSPACE RTICAN TX Message Block: "EBC1_TX" Id:418382219 */
25787 {
25788 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
25789
25790 Float32 delayTime = 0.0;
25791
25792 /* ... Read status and timestamp info (previous message) */
25793 can_tp1_msg_read(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]);
25794
25795 /* Convert timestamp */
25796 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->processed) {
25797 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->timestamp =
25798 rtk_dsts_time_to_simtime_convert
25799 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->timestamp);
25800 }
25801
25802 /* Messages with timestamp zero have been received in pause/stop state
25803 and must not be handled.
25804 */
25805 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->timestamp > 0.0) {
25806 L4_MABX_B.SFunction1_o1_lu = (real_T)
25807 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->processed;
25808 L4_MABX_B.SFunction1_o2_i = (real_T)
25809 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->timestamp;
25810 L4_MABX_B.SFunction1_o3_od = (real_T)
25811 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->deltatime;
25812 L4_MABX_B.SFunction1_o4_l5 = (real_T)
25813 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->delaytime;
25814 }
25815
25816 /* ... Encode Simulink signals of TX and RM blocks*/
25817 {
25818 rtican_Signal_t CAN_Sgn;
25819
25820 /* ...... "ASREngCtrlActive" (0|2, standard signal, unsigned int, little endian) */
25821 /* Add or substract 0.5 in order to round to nearest integer */
25822 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ASREngCtrlActive ) + 0.5);
25823 CAN_Sgn.UnsignedSgn &= 0x00000003;
25824 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25825
25826 /* ...... "ASRBrakeCtrlActive" (2|2, standard signal, unsigned int, little endian) */
25827 /* Add or substract 0.5 in order to round to nearest integer */
25828 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ASRBrakeCtrlActive ) + 0.5);
25829 CAN_Sgn.UnsignedSgn &= 0x00000003;
25830 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25831 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25832
25833 /* ...... "AntiLockBrakingActive" (4|2, standard signal, unsigned int, little endian) */
25834 /* Add or substract 0.5 in order to round to nearest integer */
25835 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.AntiLockBrakingActive ) +
25836 0.5);
25837 CAN_Sgn.UnsignedSgn &= 0x00000003;
25838 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25839 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25840
25841 /* ...... "EBSBrakeSwitch" (6|2, standard signal, unsigned int, little endian) */
25842 /* Add or substract 0.5 in order to round to nearest integer */
25843 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EBSBrakeSwitch_a ) + 0.5);
25844 CAN_Sgn.UnsignedSgn &= 0x00000003;
25845 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25846 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25847
25848 /* ...... "BrakePedalPos" (8|8, standard signal, unsigned int, little endian) */
25849 /* Add or substract 0.5 in order to round to nearest integer */
25850 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.BrakePedalPos - ( 0 ) ) /
25851 0.4 + 0.5);
25852 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25853 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
25854
25855 /* ...... "ABSOffroadSwitch" (16|2, standard signal, unsigned int, little endian) */
25856 /* Add or substract 0.5 in order to round to nearest integer */
25857 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ABSOffroadSwitch ) + 0.5);
25858 CAN_Sgn.UnsignedSgn &= 0x00000003;
25859 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
25860
25861 /* ...... "ASROffroadSwitch" (18|2, standard signal, unsigned int, little endian) */
25862 /* Add or substract 0.5 in order to round to nearest integer */
25863 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ASROffroadSwitch ) + 0.5);
25864 CAN_Sgn.UnsignedSgn &= 0x00000003;
25865 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25866 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
25867
25868 /* ...... "ASRHillHolderSwitch" (20|2, standard signal, unsigned int, little endian) */
25869 /* Add or substract 0.5 in order to round to nearest integer */
25870 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ASRHillHolderSwitch ) + 0.5);
25871 CAN_Sgn.UnsignedSgn &= 0x00000003;
25872 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25873 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
25874
25875 /* ...... "TractionCtrlOverrideSwitch" (22|2, standard signal, unsigned int, little endian) */
25876 /* Add or substract 0.5 in order to round to nearest integer */
25877 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.TractionCtrlOverrideSwitch )
25878 + 0.5);
25879 CAN_Sgn.UnsignedSgn &= 0x00000003;
25880 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25881 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
25882
25883 /* ...... "AccelInterlockSwitch" (24|2, standard signal, unsigned int, little endian) */
25884 /* Add or substract 0.5 in order to round to nearest integer */
25885 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.AccelInterlockSwitch ) + 0.5);
25886 CAN_Sgn.UnsignedSgn &= 0x00000003;
25887 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25888
25889 /* ...... "EngDerateSwitch" (26|2, standard signal, unsigned int, little endian) */
25890 /* Add or substract 0.5 in order to round to nearest integer */
25891 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngDerateSwitch ) + 0.5);
25892 CAN_Sgn.UnsignedSgn &= 0x00000003;
25893 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25894 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25895
25896 /* ...... "EngAuxShutdownSwitch" (28|2, standard signal, unsigned int, little endian) */
25897 /* Add or substract 0.5 in order to round to nearest integer */
25898 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngAuxShutdownSwitch ) + 0.5);
25899 CAN_Sgn.UnsignedSgn &= 0x00000003;
25900 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25901 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25902
25903 /* ...... "RemoteAccelEnableSwitch" (30|2, standard signal, unsigned int, little endian) */
25904 /* Add or substract 0.5 in order to round to nearest integer */
25905 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.RemoteAccelEnableSwitch ) +
25906 0.5);
25907 CAN_Sgn.UnsignedSgn &= 0x00000003;
25908 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25909 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25910
25911 /* ...... "EngRetarderSelection" (32|8, standard signal, unsigned int, little endian) */
25912 /* Add or substract 0.5 in order to round to nearest integer */
25913 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngRetarderSelection - ( 0 )
25914 ) / 0.4 + 0.5);
25915 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25916 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25917
25918 /* ...... "ABSFullyOperational" (40|2, standard signal, unsigned int, little endian) */
25919 /* Add or substract 0.5 in order to round to nearest integer */
25920 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ABSFullyOperational ) + 0.5);
25921 CAN_Sgn.UnsignedSgn &= 0x00000003;
25922 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
25923
25924 /* ...... "EBSRedWarningSignal" (42|2, standard signal, unsigned int, little endian) */
25925 /* Add or substract 0.5 in order to round to nearest integer */
25926 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EBSRedWarningSignal ) + 0.5);
25927 CAN_Sgn.UnsignedSgn &= 0x00000003;
25928 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25929 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
25930
25931 /* ...... "ABS_EBSAmberWarningSignal" (44|2, standard signal, unsigned int, little endian) */
25932 /* Add or substract 0.5 in order to round to nearest integer */
25933 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ABS_EBSAmberWarningSignal )
25934 + 0.5);
25935 CAN_Sgn.UnsignedSgn &= 0x00000003;
25936 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25937 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
25938
25939 /* ...... "ATC_ASRInformationSignal" (46|2, standard signal, unsigned int, little endian) */
25940 /* Add or substract 0.5 in order to round to nearest integer */
25941 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ATC_ASRInformationSignal ) +
25942 0.5);
25943 CAN_Sgn.UnsignedSgn &= 0x00000003;
25944 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25945 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
25946
25947 /* ...... "SrcAddrssOfCtrllngDvcFrBrkCntrl" (48|8, standard signal, unsigned int, little endian) */
25948 /* Add or substract 0.5 in order to round to nearest integer */
25949 CAN_Sgn.UnsignedSgn = (UInt32)
25950 (( L4_MABX_B.SrcAddrssOfCtrllngDvcFrBrkCntrl ) + 0.5);
25951 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25952 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
25953
25954 /* ...... "HaltBrakeSwitch" (58|2, standard signal, unsigned int, little endian) */
25955 /* Add or substract 0.5 in order to round to nearest integer */
25956 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.HaltBrakeSwitch ) + 0.5);
25957 CAN_Sgn.UnsignedSgn &= 0x00000003;
25958 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25959 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25960
25961 /* ...... "TrailerABSStatus" (60|2, standard signal, unsigned int, little endian) */
25962 /* Add or substract 0.5 in order to round to nearest integer */
25963 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.TrailerABSStatus ) + 0.5);
25964 CAN_Sgn.UnsignedSgn &= 0x00000003;
25965 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25966 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25967
25968 /* ...... "TrctrMntdTrilerABSWarningSignal" (62|2, standard signal, unsigned int, little endian) */
25969 /* Add or substract 0.5 in order to round to nearest integer */
25970 CAN_Sgn.UnsignedSgn = (UInt32)
25971 (( L4_MABX_B.TrctrMntdTrilerABSWarningSignal ) + 0.5);
25972 CAN_Sgn.UnsignedSgn &= 0x00000003;
25973 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25974 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25975 }
25976
25977 /* mask unused bits with '1' */
25978 CAN_Msg[7] |= 0x03;
25979
25980 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
25981 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B], 8,
25982 &(CAN_Msg[0]), delayTime);
25983 }
25984 }
25985
25986 /* End of Outputs for SubSystem: '<S880>/EBC1_TX' */
25987
25988 /* End of Outputs for SubSystem: '<S815>/CAN_TX_100ms' */
25989
25990 /* DiscretePulseGenerator: '<S1044>/Flash' */
25991 L4_MABX_B.Flash = (L4_MABX_DW.clockTickCounter_c < L4_MABX_P.Flash_Duty) &&
25992 (L4_MABX_DW.clockTickCounter_c >= 0) ? L4_MABX_P.Flash_Amp : 0.0;
25993 if (L4_MABX_DW.clockTickCounter_c >= L4_MABX_P.Flash_Period - 1.0) {
25994 L4_MABX_DW.clockTickCounter_c = 0;
25995 } else {
25996 L4_MABX_DW.clockTickCounter_c++;
25997 }
25998
25999 /* End of DiscretePulseGenerator: '<S1044>/Flash' */
26000 /* user code (Output function Trailer for TID3) */
26001
26002 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
26003 /* EventChannel: 0 */
26004 if (tid == 0) {
26005 DSXCP_service(0);
26006 }
26007
26008 /* If subsystem generates rate grouping Output functions,
26009 * when tid is used in Output function for one rate,
26010 * all Output functions include tid as a local variable.
26011 * As result, some Output functions may have unused tid.
26012 */
26013 UNUSED_PARAMETER(tid);
26014}
26015
26016/* Model update function for TID3 */
26017void L4_MABX_update3(void) /* Sample time: [0.1s, 0.0s] */
26018{
26019 /* Update for Atomic SubSystem: '<S815>/CAN_TX_100ms' */
26020
26021 /* Update for Enabled SubSystem: '<S852>/Rolling_15_counter' incorporates:
26022 * EnablePort: '<S894>/Enable'
26023 */
26024 if (L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_R) {
26025 /* Update for UnitDelay: '<S894>/Unit_Delay' */
26026 L4_MABX_DW.Unit_Delay_DSTATE = L4_MABX_B.FixPtSwitch;
26027 }
26028
26029 /* End of Update for SubSystem: '<S852>/Rolling_15_counter' */
26030
26031 /* End of Update for SubSystem: '<S815>/CAN_TX_100ms' */
26032
26033 /* Update for RateTransition: '<S1044>/TmpRTBAtANDInport1' */
26034 L4_MABX_DW.TmpRTBAtANDInport1_Buffer0 = L4_MABX_B.Flash;
26035}
26036
26037/* Model output function for TID4 */
26038void L4_MABX_output4(void) /* Sample time: [0.25s, 0.0s] */
26039{
26040 int_T tid = 4;
26041
26042 /* user code (Output function Trailer for TID4) */
26043
26044 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
26045 /* EventChannel: 0 */
26046 if (tid == 0) {
26047 DSXCP_service(0);
26048 }
26049
26050 /* If subsystem generates rate grouping Output functions,
26051 * when tid is used in Output function for one rate,
26052 * all Output functions include tid as a local variable.
26053 * As result, some Output functions may have unused tid.
26054 */
26055 UNUSED_PARAMETER(tid);
26056}
26057
26058/* Model update function for TID4 */
26059void L4_MABX_update4(void) /* Sample time: [0.25s, 0.0s] */
26060{
26061 /* (no update code required) */
26062}
26063
26064/* Model output function for TID5 */
26065void L4_MABX_output5(void) /* Sample time: [0.5s, 0.0s] */
26066{
26067 int_T tid = 5;
26068 boolean_T zcEvent;
26069 uint32_T q0;
26070 uint32_T qY;
26071
26072 /* S-Function (rti_commonblock): '<S28>/S-Function1' */
26073 /* This comment workarounds a code generation problem */
26074
26075 /* dSPACE RTICAN Status block */
26076 /* ... read status variables of the CAN microcontroller */
26077 {
26078 UInt32 loop_counter, memory, j;
26079 for (j=0;j<=9;j++) {
26080 rtican_type1_tq_error[0][6] = can_tp1_service_read
26081 (can_type1_service_M1_C1[j]);
26082 loop_counter = 0;
26083 while ((rtican_type1_tq_error[0][6] = can_tp1_service_request
26084 (can_type1_service_M1_C1[j]))== DSMCOM_BUFFER_OVERFLOW) {
26085 loop_counter++;
26086 if (loop_counter > MAX_LOOP) {
26087 memory = rtican_type1_error_level;
26088 rtican_type1_error_level = 1;
26089 rtican_type1_tq_err_sig(0, 6);
26090 rtican_type1_error_level = memory;
26091 break;
26092 }
26093 }
26094
26095 if (j==CANTP1_M1_C1_RXLost) {
26096 rtican_type1_tq_error[0][6] = can_tp1_service_read
26097 (can_type1_service_M1_C1[CANTP1_M1_C1_DataLost]);
26098 loop_counter = 0;
26099 while ((rtican_type1_tq_error[0][6] = can_tp1_service_request
26100 (can_type1_service_M1_C1[CANTP1_M1_C1_DataLost]))==
26101 DSMCOM_BUFFER_OVERFLOW) {
26102 loop_counter++;
26103 if (loop_counter > MAX_LOOP) {
26104 memory = rtican_type1_error_level;
26105 rtican_type1_error_level = 1;
26106 rtican_type1_tq_err_sig(0, 6);
26107 rtican_type1_error_level = memory;
26108 break;
26109 }
26110 }
26111 }
26112 }
26113
26114 L4_MABX_B.SFunction1_o1_kx = (UInt32)
26115 can_type1_service_M1_C1[CANTP1_M1_C1_Status]->data0;
26116 DIAG_CAN1_Count_Stuff_Errors = (UInt32)
26117 can_type1_service_M1_C1[CANTP1_M1_C1_StuffErrors]->data0;
26118 DIAG_CAN1_Count_Format_Errors = (UInt32)
26119 can_type1_service_M1_C1[CANTP1_M1_C1_FormatErrors]->data0;
26120 DIAG_CAN1_Count_Ack_Errors = (UInt32)
26121 can_type1_service_M1_C1[CANTP1_M1_C1_AckErrors]->data0;
26122 DIAG_CAN1_Count_Bit0_Errors = (UInt32)
26123 can_type1_service_M1_C1[CANTP1_M1_C1_Bit0Errors]->data0;
26124 DIAG_CAN1_Count_Bit1_Errors = (UInt32)
26125 can_type1_service_M1_C1[CANTP1_M1_C1_Bit1Errors]->data0;
26126 DIAG_CAN1_Count_CRC_Errors = (UInt32)
26127 can_type1_service_M1_C1[CANTP1_M1_C1_CRCErrors]->data0;
26128 DIAG_CAN1_Count_RX_Lost = (UInt32)
26129 (can_type1_service_M1_C1[CANTP1_M1_C1_RXLost]->data0 +
26130 can_type1_service_M1_C1[CANTP1_M1_C1_DataLost]->data0);
26131 DIAG_CAN1_Count_RX_OK = (UInt32) can_type1_service_M1_C1[CANTP1_M1_C1_RXOK
26132 ]->data0;
26133 DIAG_CAN1_Count_TX_OK = (UInt32) can_type1_service_M1_C1[CANTP1_M1_C1_TXOK
26134 ]->data0;
26135 }
26136
26137 /* DataTypeConversion: '<S1>/Data Type Conversion' */
26138 DIAG_CAN1_Status = (ENUM_CAN_STATUS_DIAG_T)safe_cast_to_ENUM_CAN_STATUS_DI
26139 ((int32_T)L4_MABX_B.SFunction1_o1_kx);
26140
26141 /* RelationalOperator: '<S22>/Operator' incorporates:
26142 * Constant: '<S1>/Constant'
26143 */
26144 L4_MABX_B.Operator_eu = (L4_MABX_P.Constant_Value_cq == DIAG_CAN1_Status);
26145
26146 /* Outputs for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_1' incorporates:
26147 * EnablePort: '<S11>/Enable'
26148 */
26149 if (L4_MABX_B.Operator_eu) {
26150 /* Reshape: '<S30>/Reshape' incorporates:
26151 * Constant: '<S30>/Constant'
26152 */
26153 L4_MABX_B.Reshape_g[0] = L4_MABX_P.Repeating_Sequence_Stair_OutV_l[0];
26154 L4_MABX_B.Reshape_g[1] = L4_MABX_P.Repeating_Sequence_Stair_OutV_l[1];
26155
26156 /* UnitDelay: '<S30>/Unit_Delay' */
26157 L4_MABX_B.Unit_Delay_h4 = L4_MABX_DW.Unit_Delay_DSTATE_f1;
26158
26159 /* UnitDelay: '<S31>/Unit Delay' */
26160 L4_MABX_B.UnitDelay_f4 = L4_MABX_DW.UnitDelay_DSTATE_j;
26161
26162 /* Switch: '<S34>/Switch1' incorporates:
26163 * Constant: '<S31>/E'
26164 * Constant: '<S31>/IV'
26165 * Switch: '<S33>/Switch1'
26166 */
26167 if (L4_MABX_B.Unit_Delay_h4) {
26168 L4_MABX_B.Switch1_o0 = L4_MABX_P.IV_Value_m;
26169 } else {
26170 if (L4_MABX_P.E_Value) {
26171 /* Sum: '<S31>/Subtract' incorporates:
26172 * Constant: '<S31>/Constant'
26173 * Switch: '<S33>/Switch1'
26174 */
26175 q0 = L4_MABX_P.Constant_Value_jc;
26176 qY = q0 + L4_MABX_B.UnitDelay_f4;
26177 if (qY < q0) {
26178 qY = MAX_uint32_T;
26179 }
26180
26181 L4_MABX_B.Subtract_ot = qY;
26182
26183 /* End of Sum: '<S31>/Subtract' */
26184
26185 /* Switch: '<S33>/Switch1' */
26186 L4_MABX_B.Switch1_a = L4_MABX_B.Subtract_ot;
26187 } else {
26188 /* Switch: '<S33>/Switch1' */
26189 L4_MABX_B.Switch1_a = L4_MABX_B.UnitDelay_f4;
26190 }
26191
26192 L4_MABX_B.Switch1_o0 = L4_MABX_B.Switch1_a;
26193 }
26194
26195 /* End of Switch: '<S34>/Switch1' */
26196
26197 /* Selector: '<S30>/Selector' */
26198 L4_MABX_B.Selector_da = L4_MABX_B.Reshape_g[(int32_T)L4_MABX_B.Switch1_o0 -
26199 1];
26200
26201 /* Outputs for Triggered SubSystem: '<S11>/CAN_TYPE1_BOR_M1_C1' incorporates:
26202 * TriggerPort: '<S29>/Trigger'
26203 */
26204 zcEvent = (((L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C1_Trig_ZCE == POS_ZCSIG) !=
26205 (int32_T)L4_MABX_B.Selector_da) &&
26206 (L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C1_Trig_ZCE !=
26207 UNINITIALIZED_ZCSIG));
26208 if (zcEvent) {
26209 /* S-Function (rti_commonblock): '<S29>/S-Function1' */
26210 /* This comment workarounds a code generation problem */
26211
26212 /* dSPACE RTICAN Bus Off Recovery block */
26213 /* ... Perform software-reset of the CAN microcontroller */
26214 {
26215 UInt32 loop_counter, memory;
26216 loop_counter = 0;
26217 while ((rtican_type1_tq_error[0][0] = can_tp1_channel_BOff_return
26218 (can_type1_channel_M1_C1)) == DSMCOM_BUFFER_OVERFLOW) {
26219 loop_counter++;
26220 if (loop_counter > MAX_LOOP) {
26221 memory = rtican_type1_error_level;
26222 rtican_type1_error_level = 1;
26223 rtican_type1_tq_err_sig(0, 0);
26224 rtican_type1_error_level = memory;
26225 break;
26226 }
26227 }
26228
26229 while ((rtican_type1_tq_error[0][0] = can_tp1_channel_all_wakeup
26230 (can_type1_channel_M1_C1)) == DSMCOM_BUFFER_OVERFLOW) {
26231 loop_counter++;
26232 if (loop_counter > MAX_LOOP) {
26233 memory = rtican_type1_error_level;
26234 rtican_type1_error_level = 1;
26235 rtican_type1_tq_err_sig(0, 0);
26236 rtican_type1_error_level = memory;
26237 break;
26238 }
26239 }
26240 }
26241 }
26242
26243 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C1_Trig_ZCE = L4_MABX_B.Selector_da;
26244
26245 /* End of Outputs for SubSystem: '<S11>/CAN_TYPE1_BOR_M1_C1' */
26246
26247 /* RelationalOperator: '<S32>/Operator' */
26248 L4_MABX_B.Operator_f5e = (L4_MABX_B.Switch1_o0 == L4_MABX_ConstB.Width_p);
26249 }
26250
26251 /* End of Outputs for SubSystem: '<S1>/BUS_OFF_RECOVERY_1' */
26252
26253 /* S-Function (rti_commonblock): '<S20>/S-Function1' */
26254 /* This comment workarounds a code generation problem */
26255
26256 /* dSPACE RTICAN Status block */
26257 /* ... read status variables of the CAN microcontroller */
26258 {
26259 UInt32 loop_counter, memory, j;
26260 for (j=0;j<=9;j++) {
26261 rtican_type1_tq_error[2][6] = can_tp1_service_read
26262 (can_type1_service_M3_C1[j]);
26263 loop_counter = 0;
26264 while ((rtican_type1_tq_error[2][6] = can_tp1_service_request
26265 (can_type1_service_M3_C1[j]))== DSMCOM_BUFFER_OVERFLOW) {
26266 loop_counter++;
26267 if (loop_counter > MAX_LOOP) {
26268 memory = rtican_type1_error_level;
26269 rtican_type1_error_level = 1;
26270 rtican_type1_tq_err_sig(2, 6);
26271 rtican_type1_error_level = memory;
26272 break;
26273 }
26274 }
26275
26276 if (j==CANTP1_M3_C1_RXLost) {
26277 rtican_type1_tq_error[2][6] = can_tp1_service_read
26278 (can_type1_service_M3_C1[CANTP1_M3_C1_DataLost]);
26279 loop_counter = 0;
26280 while ((rtican_type1_tq_error[2][6] = can_tp1_service_request
26281 (can_type1_service_M3_C1[CANTP1_M3_C1_DataLost]))==
26282 DSMCOM_BUFFER_OVERFLOW) {
26283 loop_counter++;
26284 if (loop_counter > MAX_LOOP) {
26285 memory = rtican_type1_error_level;
26286 rtican_type1_error_level = 1;
26287 rtican_type1_tq_err_sig(2, 6);
26288 rtican_type1_error_level = memory;
26289 break;
26290 }
26291 }
26292 }
26293 }
26294
26295 L4_MABX_B.SFunction1_o1_g3j = (UInt32)
26296 can_type1_service_M3_C1[CANTP1_M3_C1_Status]->data0;
26297 DIAG_CAN5_Count_Stuff_Errors = (UInt32)
26298 can_type1_service_M3_C1[CANTP1_M3_C1_StuffErrors]->data0;
26299 DIAG_CAN5_Count_Format_Errors = (UInt32)
26300 can_type1_service_M3_C1[CANTP1_M3_C1_FormatErrors]->data0;
26301 DIAG_CAN5_Count_Ack_Errors = (UInt32)
26302 can_type1_service_M3_C1[CANTP1_M3_C1_AckErrors]->data0;
26303 DIAG_CAN5_Count_Bit0_Errors = (UInt32)
26304 can_type1_service_M3_C1[CANTP1_M3_C1_Bit0Errors]->data0;
26305 DIAG_CAN5_Count_Bit1_Errors = (UInt32)
26306 can_type1_service_M3_C1[CANTP1_M3_C1_Bit1Errors]->data0;
26307 DIAG_CAN5_Count_CRC_Errors = (UInt32)
26308 can_type1_service_M3_C1[CANTP1_M3_C1_CRCErrors]->data0;
26309 DIAG_CAN5_Count_RX_Lost = (UInt32)
26310 (can_type1_service_M3_C1[CANTP1_M3_C1_RXLost]->data0 +
26311 can_type1_service_M3_C1[CANTP1_M3_C1_DataLost]->data0);
26312 DIAG_CAN5_Count_RX_OK = (UInt32) can_type1_service_M3_C1[CANTP1_M3_C1_RXOK
26313 ]->data0;
26314 DIAG_CAN5_Count_TX_OK = (UInt32) can_type1_service_M3_C1[CANTP1_M3_C1_TXOK
26315 ]->data0;
26316 }
26317
26318 /* DataTypeConversion: '<S1>/Data Type Conversion5' */
26319 DIAG_CAN5_Status = (ENUM_CAN_STATUS_DIAG_T)safe_cast_to_ENUM_CAN_STATUS_DI
26320 ((int32_T)L4_MABX_B.SFunction1_o1_g3j);
26321
26322 /* RelationalOperator: '<S26>/Operator' incorporates:
26323 * Constant: '<S1>/Constant4'
26324 */
26325 L4_MABX_B.Operator_ms = (L4_MABX_P.Constant4_Value_np == DIAG_CAN5_Status);
26326
26327 /* Outputs for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_5' incorporates:
26328 * EnablePort: '<S15>/Enable'
26329 */
26330 if (L4_MABX_B.Operator_ms) {
26331 /* Reshape: '<S54>/Reshape' incorporates:
26332 * Constant: '<S54>/Constant'
26333 */
26334 L4_MABX_B.Reshape_a[0] = L4_MABX_P.Repeating_Sequence_Stair_OutV_j[0];
26335 L4_MABX_B.Reshape_a[1] = L4_MABX_P.Repeating_Sequence_Stair_OutV_j[1];
26336
26337 /* UnitDelay: '<S54>/Unit_Delay' */
26338 L4_MABX_B.Unit_Delay_p1 = L4_MABX_DW.Unit_Delay_DSTATE_i5;
26339
26340 /* UnitDelay: '<S55>/Unit Delay' */
26341 L4_MABX_B.UnitDelay_j = L4_MABX_DW.UnitDelay_DSTATE_p;
26342
26343 /* Switch: '<S58>/Switch1' incorporates:
26344 * Constant: '<S55>/E'
26345 * Constant: '<S55>/IV'
26346 * Switch: '<S57>/Switch1'
26347 */
26348 if (L4_MABX_B.Unit_Delay_p1) {
26349 L4_MABX_B.Switch1_k = L4_MABX_P.IV_Value_h;
26350 } else {
26351 if (L4_MABX_P.E_Value_db) {
26352 /* Sum: '<S55>/Subtract' incorporates:
26353 * Constant: '<S55>/Constant'
26354 * Switch: '<S57>/Switch1'
26355 */
26356 q0 = L4_MABX_P.Constant_Value_jg;
26357 qY = q0 + L4_MABX_B.UnitDelay_j;
26358 if (qY < q0) {
26359 qY = MAX_uint32_T;
26360 }
26361
26362 L4_MABX_B.Subtract_m = qY;
26363
26364 /* End of Sum: '<S55>/Subtract' */
26365
26366 /* Switch: '<S57>/Switch1' */
26367 L4_MABX_B.Switch1_lh = L4_MABX_B.Subtract_m;
26368 } else {
26369 /* Switch: '<S57>/Switch1' */
26370 L4_MABX_B.Switch1_lh = L4_MABX_B.UnitDelay_j;
26371 }
26372
26373 L4_MABX_B.Switch1_k = L4_MABX_B.Switch1_lh;
26374 }
26375
26376 /* End of Switch: '<S58>/Switch1' */
26377
26378 /* Selector: '<S54>/Selector' */
26379 L4_MABX_B.Selector_p = L4_MABX_B.Reshape_a[(int32_T)L4_MABX_B.Switch1_k - 1];
26380
26381 /* Outputs for Triggered SubSystem: '<S15>/CAN_TYPE1_BOR_M3_C1' incorporates:
26382 * TriggerPort: '<S53>/Trigger'
26383 */
26384 zcEvent = (((L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C1_Trig_ZCE == POS_ZCSIG) !=
26385 (int32_T)L4_MABX_B.Selector_p) &&
26386 (L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C1_Trig_ZCE !=
26387 UNINITIALIZED_ZCSIG));
26388 if (zcEvent) {
26389 /* S-Function (rti_commonblock): '<S53>/S-Function1' */
26390 /* This comment workarounds a code generation problem */
26391
26392 /* dSPACE RTICAN Bus Off Recovery block */
26393 /* ... Perform software-reset of the CAN microcontroller */
26394 {
26395 UInt32 loop_counter, memory;
26396 loop_counter = 0;
26397 while ((rtican_type1_tq_error[2][0] = can_tp1_channel_BOff_return
26398 (can_type1_channel_M3_C1)) == DSMCOM_BUFFER_OVERFLOW) {
26399 loop_counter++;
26400 if (loop_counter > MAX_LOOP) {
26401 memory = rtican_type1_error_level;
26402 rtican_type1_error_level = 1;
26403 rtican_type1_tq_err_sig(2, 0);
26404 rtican_type1_error_level = memory;
26405 break;
26406 }
26407 }
26408
26409 while ((rtican_type1_tq_error[2][0] = can_tp1_channel_all_wakeup
26410 (can_type1_channel_M3_C1)) == DSMCOM_BUFFER_OVERFLOW) {
26411 loop_counter++;
26412 if (loop_counter > MAX_LOOP) {
26413 memory = rtican_type1_error_level;
26414 rtican_type1_error_level = 1;
26415 rtican_type1_tq_err_sig(2, 0);
26416 rtican_type1_error_level = memory;
26417 break;
26418 }
26419 }
26420 }
26421 }
26422
26423 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C1_Trig_ZCE = L4_MABX_B.Selector_p;
26424
26425 /* End of Outputs for SubSystem: '<S15>/CAN_TYPE1_BOR_M3_C1' */
26426
26427 /* RelationalOperator: '<S56>/Operator' */
26428 L4_MABX_B.Operator_ho = (L4_MABX_B.Switch1_k == L4_MABX_ConstB.Width_a);
26429 }
26430
26431 /* End of Outputs for SubSystem: '<S1>/BUS_OFF_RECOVERY_5' */
26432
26433 /* S-Function (rti_commonblock): '<S21>/S-Function1' */
26434 /* This comment workarounds a code generation problem */
26435
26436 /* dSPACE RTICAN Status block */
26437 /* ... read status variables of the CAN microcontroller */
26438 {
26439 UInt32 loop_counter, memory, j;
26440 for (j=0;j<=9;j++) {
26441 rtican_type1_tq_error[2][6] = can_tp1_service_read
26442 (can_type1_service_M3_C2[j]);
26443 loop_counter = 0;
26444 while ((rtican_type1_tq_error[2][6] = can_tp1_service_request
26445 (can_type1_service_M3_C2[j]))== DSMCOM_BUFFER_OVERFLOW) {
26446 loop_counter++;
26447 if (loop_counter > MAX_LOOP) {
26448 memory = rtican_type1_error_level;
26449 rtican_type1_error_level = 1;
26450 rtican_type1_tq_err_sig(2, 6);
26451 rtican_type1_error_level = memory;
26452 break;
26453 }
26454 }
26455
26456 if (j==CANTP1_M3_C2_RXLost) {
26457 rtican_type1_tq_error[2][6] = can_tp1_service_read
26458 (can_type1_service_M3_C2[CANTP1_M3_C2_DataLost]);
26459 loop_counter = 0;
26460 while ((rtican_type1_tq_error[2][6] = can_tp1_service_request
26461 (can_type1_service_M3_C2[CANTP1_M3_C2_DataLost]))==
26462 DSMCOM_BUFFER_OVERFLOW) {
26463 loop_counter++;
26464 if (loop_counter > MAX_LOOP) {
26465 memory = rtican_type1_error_level;
26466 rtican_type1_error_level = 1;
26467 rtican_type1_tq_err_sig(2, 6);
26468 rtican_type1_error_level = memory;
26469 break;
26470 }
26471 }
26472 }
26473 }
26474
26475 L4_MABX_B.SFunction1_o1_ar = (UInt32)
26476 can_type1_service_M3_C2[CANTP1_M3_C2_Status]->data0;
26477 DIAG_CAN6_Count_Stuff_Errors = (UInt32)
26478 can_type1_service_M3_C2[CANTP1_M3_C2_StuffErrors]->data0;
26479 DIAG_CAN6_Count_Format_Errors = (UInt32)
26480 can_type1_service_M3_C2[CANTP1_M3_C2_FormatErrors]->data0;
26481 DIAG_CAN6_Count_Ack_Errors = (UInt32)
26482 can_type1_service_M3_C2[CANTP1_M3_C2_AckErrors]->data0;
26483 DIAG_CAN6_Count_Bit0_Errors = (UInt32)
26484 can_type1_service_M3_C2[CANTP1_M3_C2_Bit0Errors]->data0;
26485 DIAG_CAN6_Count_Bit1_Errors = (UInt32)
26486 can_type1_service_M3_C2[CANTP1_M3_C2_Bit1Errors]->data0;
26487 DIAG_CAN6_Count_CRC_Errors = (UInt32)
26488 can_type1_service_M3_C2[CANTP1_M3_C2_CRCErrors]->data0;
26489 DIAG_CAN6_Count_RX_Lost = (UInt32)
26490 (can_type1_service_M3_C2[CANTP1_M3_C2_RXLost]->data0 +
26491 can_type1_service_M3_C2[CANTP1_M3_C2_DataLost]->data0);
26492 DIAG_CAN6_Count_RX_OK = (UInt32) can_type1_service_M3_C2[CANTP1_M3_C2_RXOK
26493 ]->data0;
26494 DIAG_CAN6_Count_TX_OK = (UInt32) can_type1_service_M3_C2[CANTP1_M3_C2_TXOK
26495 ]->data0;
26496 }
26497
26498 /* DataTypeConversion: '<S1>/Data Type Conversion4' */
26499 DIAG_CAN6_Status = (ENUM_CAN_STATUS_DIAG_T)safe_cast_to_ENUM_CAN_STATUS_DI
26500 ((int32_T)L4_MABX_B.SFunction1_o1_ar);
26501
26502 /* RelationalOperator: '<S27>/Operator' incorporates:
26503 * Constant: '<S1>/Constant5'
26504 */
26505 L4_MABX_B.Operator_fv = (L4_MABX_P.Constant5_Value_m == DIAG_CAN6_Status);
26506
26507 /* Outputs for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_6' incorporates:
26508 * EnablePort: '<S16>/Enable'
26509 */
26510 if (L4_MABX_B.Operator_fv) {
26511 /* Reshape: '<S60>/Reshape' incorporates:
26512 * Constant: '<S60>/Constant'
26513 */
26514 L4_MABX_B.Reshape_j[0] = L4_MABX_P.Repeating_Sequence_Stair_OutV_e[0];
26515 L4_MABX_B.Reshape_j[1] = L4_MABX_P.Repeating_Sequence_Stair_OutV_e[1];
26516
26517 /* UnitDelay: '<S60>/Unit_Delay' */
26518 L4_MABX_B.Unit_Delay_mw = L4_MABX_DW.Unit_Delay_DSTATE_l5;
26519
26520 /* UnitDelay: '<S61>/Unit Delay' */
26521 L4_MABX_B.UnitDelay_a = L4_MABX_DW.UnitDelay_DSTATE_dr;
26522
26523 /* Switch: '<S64>/Switch1' incorporates:
26524 * Constant: '<S61>/E'
26525 * Constant: '<S61>/IV'
26526 * Switch: '<S63>/Switch1'
26527 */
26528 if (L4_MABX_B.Unit_Delay_mw) {
26529 L4_MABX_B.Switch1_h = L4_MABX_P.IV_Value_ey;
26530 } else {
26531 if (L4_MABX_P.E_Value_c) {
26532 /* Sum: '<S61>/Subtract' incorporates:
26533 * Constant: '<S61>/Constant'
26534 * Switch: '<S63>/Switch1'
26535 */
26536 q0 = L4_MABX_P.Constant_Value_iu;
26537 qY = q0 + L4_MABX_B.UnitDelay_a;
26538 if (qY < q0) {
26539 qY = MAX_uint32_T;
26540 }
26541
26542 L4_MABX_B.Subtract_fc = qY;
26543
26544 /* End of Sum: '<S61>/Subtract' */
26545
26546 /* Switch: '<S63>/Switch1' */
26547 L4_MABX_B.Switch1_b = L4_MABX_B.Subtract_fc;
26548 } else {
26549 /* Switch: '<S63>/Switch1' */
26550 L4_MABX_B.Switch1_b = L4_MABX_B.UnitDelay_a;
26551 }
26552
26553 L4_MABX_B.Switch1_h = L4_MABX_B.Switch1_b;
26554 }
26555
26556 /* End of Switch: '<S64>/Switch1' */
26557
26558 /* Selector: '<S60>/Selector' */
26559 L4_MABX_B.Selector_h = L4_MABX_B.Reshape_j[(int32_T)L4_MABX_B.Switch1_h - 1];
26560
26561 /* Outputs for Triggered SubSystem: '<S16>/CAN_TYPE1_BOR_M3_C2' incorporates:
26562 * TriggerPort: '<S59>/Trigger'
26563 */
26564 zcEvent = (((L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C2_Trig_ZCE == POS_ZCSIG) !=
26565 (int32_T)L4_MABX_B.Selector_h) &&
26566 (L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C2_Trig_ZCE !=
26567 UNINITIALIZED_ZCSIG));
26568 if (zcEvent) {
26569 /* S-Function (rti_commonblock): '<S59>/S-Function1' */
26570 /* This comment workarounds a code generation problem */
26571
26572 /* dSPACE RTICAN Bus Off Recovery block */
26573 /* ... Perform software-reset of the CAN microcontroller */
26574 {
26575 UInt32 loop_counter, memory;
26576 loop_counter = 0;
26577 while ((rtican_type1_tq_error[2][0] = can_tp1_channel_BOff_return
26578 (can_type1_channel_M3_C2)) == DSMCOM_BUFFER_OVERFLOW) {
26579 loop_counter++;
26580 if (loop_counter > MAX_LOOP) {
26581 memory = rtican_type1_error_level;
26582 rtican_type1_error_level = 1;
26583 rtican_type1_tq_err_sig(2, 0);
26584 rtican_type1_error_level = memory;
26585 break;
26586 }
26587 }
26588
26589 while ((rtican_type1_tq_error[2][0] = can_tp1_channel_all_wakeup
26590 (can_type1_channel_M3_C2)) == DSMCOM_BUFFER_OVERFLOW) {
26591 loop_counter++;
26592 if (loop_counter > MAX_LOOP) {
26593 memory = rtican_type1_error_level;
26594 rtican_type1_error_level = 1;
26595 rtican_type1_tq_err_sig(2, 0);
26596 rtican_type1_error_level = memory;
26597 break;
26598 }
26599 }
26600 }
26601 }
26602
26603 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C2_Trig_ZCE = L4_MABX_B.Selector_h;
26604
26605 /* End of Outputs for SubSystem: '<S16>/CAN_TYPE1_BOR_M3_C2' */
26606
26607 /* RelationalOperator: '<S62>/Operator' */
26608 L4_MABX_B.Operator_bg = (L4_MABX_B.Switch1_h == L4_MABX_ConstB.Width);
26609 }
26610
26611 /* End of Outputs for SubSystem: '<S1>/BUS_OFF_RECOVERY_6' */
26612
26613 /* S-Function (rti_commonblock): '<S18>/S-Function1' */
26614 /* This comment workarounds a code generation problem */
26615
26616 /* dSPACE RTICAN Status block */
26617 /* ... read status variables of the CAN microcontroller */
26618 {
26619 UInt32 loop_counter, memory, j;
26620 for (j=0;j<=9;j++) {
26621 rtican_type1_tq_error[1][6] = can_tp1_service_read
26622 (can_type1_service_M2_C1[j]);
26623 loop_counter = 0;
26624 while ((rtican_type1_tq_error[1][6] = can_tp1_service_request
26625 (can_type1_service_M2_C1[j]))== DSMCOM_BUFFER_OVERFLOW) {
26626 loop_counter++;
26627 if (loop_counter > MAX_LOOP) {
26628 memory = rtican_type1_error_level;
26629 rtican_type1_error_level = 1;
26630 rtican_type1_tq_err_sig(1, 6);
26631 rtican_type1_error_level = memory;
26632 break;
26633 }
26634 }
26635
26636 if (j==CANTP1_M2_C1_RXLost) {
26637 rtican_type1_tq_error[1][6] = can_tp1_service_read
26638 (can_type1_service_M2_C1[CANTP1_M2_C1_DataLost]);
26639 loop_counter = 0;
26640 while ((rtican_type1_tq_error[1][6] = can_tp1_service_request
26641 (can_type1_service_M2_C1[CANTP1_M2_C1_DataLost]))==
26642 DSMCOM_BUFFER_OVERFLOW) {
26643 loop_counter++;
26644 if (loop_counter > MAX_LOOP) {
26645 memory = rtican_type1_error_level;
26646 rtican_type1_error_level = 1;
26647 rtican_type1_tq_err_sig(1, 6);
26648 rtican_type1_error_level = memory;
26649 break;
26650 }
26651 }
26652 }
26653 }
26654
26655 L4_MABX_B.SFunction1_o1_h4 = (UInt32)
26656 can_type1_service_M2_C1[CANTP1_M2_C1_Status]->data0;
26657 DIAG_CAN3_Count_Stuff_Errors = (UInt32)
26658 can_type1_service_M2_C1[CANTP1_M2_C1_StuffErrors]->data0;
26659 DIAG_CAN3_Count_Format_Errors = (UInt32)
26660 can_type1_service_M2_C1[CANTP1_M2_C1_FormatErrors]->data0;
26661 DIAG_CAN3_Count_Ack_Errors = (UInt32)
26662 can_type1_service_M2_C1[CANTP1_M2_C1_AckErrors]->data0;
26663 DIAG_CAN3_Count_Bit0_Errors = (UInt32)
26664 can_type1_service_M2_C1[CANTP1_M2_C1_Bit0Errors]->data0;
26665 DIAG_CAN3_Count_Bit1_Errors = (UInt32)
26666 can_type1_service_M2_C1[CANTP1_M2_C1_Bit1Errors]->data0;
26667 DIAG_CAN3_Count_CRC_Errors = (UInt32)
26668 can_type1_service_M2_C1[CANTP1_M2_C1_CRCErrors]->data0;
26669 DIAG_CAN3_Count_RX_Lost = (UInt32)
26670 (can_type1_service_M2_C1[CANTP1_M2_C1_RXLost]->data0 +
26671 can_type1_service_M2_C1[CANTP1_M2_C1_DataLost]->data0);
26672 DIAG_CAN3_Count_RX_OK = (UInt32) can_type1_service_M2_C1[CANTP1_M2_C1_RXOK
26673 ]->data0;
26674 DIAG_CAN3_Count_TX_OK = (UInt32) can_type1_service_M2_C1[CANTP1_M2_C1_TXOK
26675 ]->data0;
26676 }
26677
26678 /* DataTypeConversion: '<S1>/Data Type Conversion3' */
26679 DIAG_CAN3_Status = (ENUM_CAN_STATUS_DIAG_T)safe_cast_to_ENUM_CAN_STATUS_DI
26680 ((int32_T)L4_MABX_B.SFunction1_o1_h4);
26681
26682 /* RelationalOperator: '<S24>/Operator' incorporates:
26683 * Constant: '<S1>/Constant1'
26684 */
26685 L4_MABX_B.Operator_bs = (L4_MABX_P.Constant1_Value_c0 == DIAG_CAN3_Status);
26686
26687 /* Outputs for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_3' incorporates:
26688 * EnablePort: '<S13>/Enable'
26689 */
26690 if (L4_MABX_B.Operator_bs) {
26691 /* Reshape: '<S42>/Reshape' incorporates:
26692 * Constant: '<S42>/Constant'
26693 */
26694 L4_MABX_B.Reshape_i[0] = L4_MABX_P.Repeating_Sequence_Stair_OutV_o[0];
26695 L4_MABX_B.Reshape_i[1] = L4_MABX_P.Repeating_Sequence_Stair_OutV_o[1];
26696
26697 /* UnitDelay: '<S42>/Unit_Delay' */
26698 L4_MABX_B.Unit_Delay_m0 = L4_MABX_DW.Unit_Delay_DSTATE_h41;
26699
26700 /* UnitDelay: '<S43>/Unit Delay' */
26701 L4_MABX_B.UnitDelay_d = L4_MABX_DW.UnitDelay_DSTATE_dr4;
26702
26703 /* Switch: '<S46>/Switch1' incorporates:
26704 * Constant: '<S43>/E'
26705 * Constant: '<S43>/IV'
26706 * Switch: '<S45>/Switch1'
26707 */
26708 if (L4_MABX_B.Unit_Delay_m0) {
26709 L4_MABX_B.Switch1_k4 = L4_MABX_P.IV_Value_b;
26710 } else {
26711 if (L4_MABX_P.E_Value_d) {
26712 /* Sum: '<S43>/Subtract' incorporates:
26713 * Constant: '<S43>/Constant'
26714 * Switch: '<S45>/Switch1'
26715 */
26716 q0 = L4_MABX_P.Constant_Value_h3;
26717 qY = q0 + L4_MABX_B.UnitDelay_d;
26718 if (qY < q0) {
26719 qY = MAX_uint32_T;
26720 }
26721
26722 L4_MABX_B.Subtract_h = qY;
26723
26724 /* End of Sum: '<S43>/Subtract' */
26725
26726 /* Switch: '<S45>/Switch1' */
26727 L4_MABX_B.Switch1_fr = L4_MABX_B.Subtract_h;
26728 } else {
26729 /* Switch: '<S45>/Switch1' */
26730 L4_MABX_B.Switch1_fr = L4_MABX_B.UnitDelay_d;
26731 }
26732
26733 L4_MABX_B.Switch1_k4 = L4_MABX_B.Switch1_fr;
26734 }
26735
26736 /* End of Switch: '<S46>/Switch1' */
26737
26738 /* Selector: '<S42>/Selector' */
26739 L4_MABX_B.Selector_g = L4_MABX_B.Reshape_i[(int32_T)L4_MABX_B.Switch1_k4 - 1];
26740
26741 /* Outputs for Triggered SubSystem: '<S13>/CAN_TYPE1_BOR_M2_C1' incorporates:
26742 * TriggerPort: '<S41>/Trigger'
26743 */
26744 zcEvent = (((L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C1_Trig_ZCE == POS_ZCSIG) !=
26745 (int32_T)L4_MABX_B.Selector_g) &&
26746 (L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C1_Trig_ZCE !=
26747 UNINITIALIZED_ZCSIG));
26748 if (zcEvent) {
26749 /* S-Function (rti_commonblock): '<S41>/S-Function1' */
26750 /* This comment workarounds a code generation problem */
26751
26752 /* dSPACE RTICAN Bus Off Recovery block */
26753 /* ... Perform software-reset of the CAN microcontroller */
26754 {
26755 UInt32 loop_counter, memory;
26756 loop_counter = 0;
26757 while ((rtican_type1_tq_error[1][0] = can_tp1_channel_BOff_return
26758 (can_type1_channel_M2_C1)) == DSMCOM_BUFFER_OVERFLOW) {
26759 loop_counter++;
26760 if (loop_counter > MAX_LOOP) {
26761 memory = rtican_type1_error_level;
26762 rtican_type1_error_level = 1;
26763 rtican_type1_tq_err_sig(1, 0);
26764 rtican_type1_error_level = memory;
26765 break;
26766 }
26767 }
26768
26769 while ((rtican_type1_tq_error[1][0] = can_tp1_channel_all_wakeup
26770 (can_type1_channel_M2_C1)) == DSMCOM_BUFFER_OVERFLOW) {
26771 loop_counter++;
26772 if (loop_counter > MAX_LOOP) {
26773 memory = rtican_type1_error_level;
26774 rtican_type1_error_level = 1;
26775 rtican_type1_tq_err_sig(1, 0);
26776 rtican_type1_error_level = memory;
26777 break;
26778 }
26779 }
26780 }
26781 }
26782
26783 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C1_Trig_ZCE = L4_MABX_B.Selector_g;
26784
26785 /* End of Outputs for SubSystem: '<S13>/CAN_TYPE1_BOR_M2_C1' */
26786
26787 /* RelationalOperator: '<S44>/Operator' */
26788 L4_MABX_B.Operator_dh = (L4_MABX_B.Switch1_k4 == L4_MABX_ConstB.Width_iw);
26789 }
26790
26791 /* End of Outputs for SubSystem: '<S1>/BUS_OFF_RECOVERY_3' */
26792
26793 /* S-Function (rti_commonblock): '<S19>/S-Function1' */
26794 /* This comment workarounds a code generation problem */
26795
26796 /* dSPACE RTICAN Status block */
26797 /* ... read status variables of the CAN microcontroller */
26798 {
26799 UInt32 loop_counter, memory, j;
26800 for (j=0;j<=9;j++) {
26801 rtican_type1_tq_error[1][6] = can_tp1_service_read
26802 (can_type1_service_M2_C2[j]);
26803 loop_counter = 0;
26804 while ((rtican_type1_tq_error[1][6] = can_tp1_service_request
26805 (can_type1_service_M2_C2[j]))== DSMCOM_BUFFER_OVERFLOW) {
26806 loop_counter++;
26807 if (loop_counter > MAX_LOOP) {
26808 memory = rtican_type1_error_level;
26809 rtican_type1_error_level = 1;
26810 rtican_type1_tq_err_sig(1, 6);
26811 rtican_type1_error_level = memory;
26812 break;
26813 }
26814 }
26815
26816 if (j==CANTP1_M2_C2_RXLost) {
26817 rtican_type1_tq_error[1][6] = can_tp1_service_read
26818 (can_type1_service_M2_C2[CANTP1_M2_C2_DataLost]);
26819 loop_counter = 0;
26820 while ((rtican_type1_tq_error[1][6] = can_tp1_service_request
26821 (can_type1_service_M2_C2[CANTP1_M2_C2_DataLost]))==
26822 DSMCOM_BUFFER_OVERFLOW) {
26823 loop_counter++;
26824 if (loop_counter > MAX_LOOP) {
26825 memory = rtican_type1_error_level;
26826 rtican_type1_error_level = 1;
26827 rtican_type1_tq_err_sig(1, 6);
26828 rtican_type1_error_level = memory;
26829 break;
26830 }
26831 }
26832 }
26833 }
26834
26835 L4_MABX_B.SFunction1_o1_ma = (UInt32)
26836 can_type1_service_M2_C2[CANTP1_M2_C2_Status]->data0;
26837 DIAG_CAN4_Count_Stuff_Errors = (UInt32)
26838 can_type1_service_M2_C2[CANTP1_M2_C2_StuffErrors]->data0;
26839 DIAG_CAN4_Count_Format_Errors = (UInt32)
26840 can_type1_service_M2_C2[CANTP1_M2_C2_FormatErrors]->data0;
26841 DIAG_CAN4_Count_Ack_Errors = (UInt32)
26842 can_type1_service_M2_C2[CANTP1_M2_C2_AckErrors]->data0;
26843 DIAG_CAN4_Count_Bit0_Errors = (UInt32)
26844 can_type1_service_M2_C2[CANTP1_M2_C2_Bit0Errors]->data0;
26845 DIAG_CAN4_Count_Bit1_Errors = (UInt32)
26846 can_type1_service_M2_C2[CANTP1_M2_C2_Bit1Errors]->data0;
26847 DIAG_CAN4_Count_CRC_Errors = (UInt32)
26848 can_type1_service_M2_C2[CANTP1_M2_C2_CRCErrors]->data0;
26849 DIAG_CAN4_Count_RX_Lost = (UInt32)
26850 (can_type1_service_M2_C2[CANTP1_M2_C2_RXLost]->data0 +
26851 can_type1_service_M2_C2[CANTP1_M2_C2_DataLost]->data0);
26852 DIAG_CAN4_Count_RX_OK = (UInt32) can_type1_service_M2_C2[CANTP1_M2_C2_RXOK
26853 ]->data0;
26854 DIAG_CAN4_Count_TX_OK = (UInt32) can_type1_service_M2_C2[CANTP1_M2_C2_TXOK
26855 ]->data0;
26856 }
26857
26858 /* DataTypeConversion: '<S1>/Data Type Conversion2' */
26859 DIAG_CAN4_Status = (ENUM_CAN_STATUS_DIAG_T)safe_cast_to_ENUM_CAN_STATUS_DI
26860 ((int32_T)L4_MABX_B.SFunction1_o1_ma);
26861
26862 /* RelationalOperator: '<S25>/Operator' incorporates:
26863 * Constant: '<S1>/Constant3'
26864 */
26865 L4_MABX_B.Operator_bw = (L4_MABX_P.Constant3_Value_h == DIAG_CAN4_Status);
26866
26867 /* Outputs for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_4' incorporates:
26868 * EnablePort: '<S14>/Enable'
26869 */
26870 if (L4_MABX_B.Operator_bw) {
26871 /* Reshape: '<S48>/Reshape' incorporates:
26872 * Constant: '<S48>/Constant'
26873 */
26874 L4_MABX_B.Reshape_n[0] = L4_MABX_P.Repeating_Sequence_Stair_OutV_n[0];
26875 L4_MABX_B.Reshape_n[1] = L4_MABX_P.Repeating_Sequence_Stair_OutV_n[1];
26876
26877 /* UnitDelay: '<S48>/Unit_Delay' */
26878 L4_MABX_B.Unit_Delay_fl = L4_MABX_DW.Unit_Delay_DSTATE_mq;
26879
26880 /* UnitDelay: '<S49>/Unit Delay' */
26881 L4_MABX_B.UnitDelay_l = L4_MABX_DW.UnitDelay_DSTATE_h;
26882
26883 /* Switch: '<S52>/Switch1' incorporates:
26884 * Constant: '<S49>/E'
26885 * Constant: '<S49>/IV'
26886 * Switch: '<S51>/Switch1'
26887 */
26888 if (L4_MABX_B.Unit_Delay_fl) {
26889 L4_MABX_B.Switch1_ex = L4_MABX_P.IV_Value_k;
26890 } else {
26891 if (L4_MABX_P.E_Value_m) {
26892 /* Sum: '<S49>/Subtract' incorporates:
26893 * Constant: '<S49>/Constant'
26894 * Switch: '<S51>/Switch1'
26895 */
26896 q0 = L4_MABX_P.Constant_Value_o0;
26897 qY = q0 + L4_MABX_B.UnitDelay_l;
26898 if (qY < q0) {
26899 qY = MAX_uint32_T;
26900 }
26901
26902 L4_MABX_B.Subtract_f1 = qY;
26903
26904 /* End of Sum: '<S49>/Subtract' */
26905
26906 /* Switch: '<S51>/Switch1' */
26907 L4_MABX_B.Switch1_c = L4_MABX_B.Subtract_f1;
26908 } else {
26909 /* Switch: '<S51>/Switch1' */
26910 L4_MABX_B.Switch1_c = L4_MABX_B.UnitDelay_l;
26911 }
26912
26913 L4_MABX_B.Switch1_ex = L4_MABX_B.Switch1_c;
26914 }
26915
26916 /* End of Switch: '<S52>/Switch1' */
26917
26918 /* Selector: '<S48>/Selector' */
26919 L4_MABX_B.Selector_i = L4_MABX_B.Reshape_n[(int32_T)L4_MABX_B.Switch1_ex - 1];
26920
26921 /* Outputs for Triggered SubSystem: '<S14>/CAN_TYPE1_BOR_M2_C2' incorporates:
26922 * TriggerPort: '<S47>/Trigger'
26923 */
26924 zcEvent = (((L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C2_Trig_ZCE == POS_ZCSIG) !=
26925 (int32_T)L4_MABX_B.Selector_i) &&
26926 (L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C2_Trig_ZCE !=
26927 UNINITIALIZED_ZCSIG));
26928 if (zcEvent) {
26929 /* S-Function (rti_commonblock): '<S47>/S-Function1' */
26930 /* This comment workarounds a code generation problem */
26931
26932 /* dSPACE RTICAN Bus Off Recovery block */
26933 /* ... Perform software-reset of the CAN microcontroller */
26934 {
26935 UInt32 loop_counter, memory;
26936 loop_counter = 0;
26937 while ((rtican_type1_tq_error[1][0] = can_tp1_channel_BOff_return
26938 (can_type1_channel_M2_C2)) == DSMCOM_BUFFER_OVERFLOW) {
26939 loop_counter++;
26940 if (loop_counter > MAX_LOOP) {
26941 memory = rtican_type1_error_level;
26942 rtican_type1_error_level = 1;
26943 rtican_type1_tq_err_sig(1, 0);
26944 rtican_type1_error_level = memory;
26945 break;
26946 }
26947 }
26948
26949 while ((rtican_type1_tq_error[1][0] = can_tp1_channel_all_wakeup
26950 (can_type1_channel_M2_C2)) == DSMCOM_BUFFER_OVERFLOW) {
26951 loop_counter++;
26952 if (loop_counter > MAX_LOOP) {
26953 memory = rtican_type1_error_level;
26954 rtican_type1_error_level = 1;
26955 rtican_type1_tq_err_sig(1, 0);
26956 rtican_type1_error_level = memory;
26957 break;
26958 }
26959 }
26960 }
26961 }
26962
26963 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C2_Trig_ZCE = L4_MABX_B.Selector_i;
26964
26965 /* End of Outputs for SubSystem: '<S14>/CAN_TYPE1_BOR_M2_C2' */
26966
26967 /* RelationalOperator: '<S50>/Operator' */
26968 L4_MABX_B.Operator_ou = (L4_MABX_B.Switch1_ex == L4_MABX_ConstB.Width_i);
26969 }
26970
26971 /* End of Outputs for SubSystem: '<S1>/BUS_OFF_RECOVERY_4' */
26972
26973 /* S-Function (rti_commonblock): '<S17>/S-Function1' */
26974 /* This comment workarounds a code generation problem */
26975
26976 /* dSPACE RTICAN Status block */
26977 /* ... read status variables of the CAN microcontroller */
26978 {
26979 UInt32 loop_counter, memory, j;
26980 for (j=0;j<=9;j++) {
26981 rtican_type1_tq_error[0][6] = can_tp1_service_read
26982 (can_type1_service_M1_C2[j]);
26983 loop_counter = 0;
26984 while ((rtican_type1_tq_error[0][6] = can_tp1_service_request
26985 (can_type1_service_M1_C2[j]))== DSMCOM_BUFFER_OVERFLOW) {
26986 loop_counter++;
26987 if (loop_counter > MAX_LOOP) {
26988 memory = rtican_type1_error_level;
26989 rtican_type1_error_level = 1;
26990 rtican_type1_tq_err_sig(0, 6);
26991 rtican_type1_error_level = memory;
26992 break;
26993 }
26994 }
26995
26996 if (j==CANTP1_M1_C2_RXLost) {
26997 rtican_type1_tq_error[0][6] = can_tp1_service_read
26998 (can_type1_service_M1_C2[CANTP1_M1_C2_DataLost]);
26999 loop_counter = 0;
27000 while ((rtican_type1_tq_error[0][6] = can_tp1_service_request
27001 (can_type1_service_M1_C2[CANTP1_M1_C2_DataLost]))==
27002 DSMCOM_BUFFER_OVERFLOW) {
27003 loop_counter++;
27004 if (loop_counter > MAX_LOOP) {
27005 memory = rtican_type1_error_level;
27006 rtican_type1_error_level = 1;
27007 rtican_type1_tq_err_sig(0, 6);
27008 rtican_type1_error_level = memory;
27009 break;
27010 }
27011 }
27012 }
27013 }
27014
27015 L4_MABX_B.SFunction1_o1_og = (UInt32)
27016 can_type1_service_M1_C2[CANTP1_M1_C2_Status]->data0;
27017 DIAG_CAN2_Count_Stuff_Errors = (UInt32)
27018 can_type1_service_M1_C2[CANTP1_M1_C2_StuffErrors]->data0;
27019 DIAG_CAN2_Count_Format_Errors = (UInt32)
27020 can_type1_service_M1_C2[CANTP1_M1_C2_FormatErrors]->data0;
27021 DIAG_CAN2_Count_Ack_Errors = (UInt32)
27022 can_type1_service_M1_C2[CANTP1_M1_C2_AckErrors]->data0;
27023 DIAG_CAN2_Count_Bit0_Errors = (UInt32)
27024 can_type1_service_M1_C2[CANTP1_M1_C2_Bit0Errors]->data0;
27025 DIAG_CAN2_Count_Bit1_Errors = (UInt32)
27026 can_type1_service_M1_C2[CANTP1_M1_C2_Bit1Errors]->data0;
27027 DIAG_CAN2_Count_CRC_Errors = (UInt32)
27028 can_type1_service_M1_C2[CANTP1_M1_C2_CRCErrors]->data0;
27029 DIAG_CAN2_Count_RX_Lost = (UInt32)
27030 (can_type1_service_M1_C2[CANTP1_M1_C2_RXLost]->data0 +
27031 can_type1_service_M1_C2[CANTP1_M1_C2_DataLost]->data0);
27032 DIAG_CAN2_Count_RX_OK = (UInt32) can_type1_service_M1_C2[CANTP1_M1_C2_RXOK
27033 ]->data0;
27034 DIAG_CAN2_Count_TX_OK = (UInt32) can_type1_service_M1_C2[CANTP1_M1_C2_TXOK
27035 ]->data0;
27036 }
27037
27038 /* DataTypeConversion: '<S1>/Data Type Conversion1' */
27039 DIAG_CAN2_Status = (ENUM_CAN_STATUS_DIAG_T)safe_cast_to_ENUM_CAN_STATUS_DI
27040 ((int32_T)L4_MABX_B.SFunction1_o1_og);
27041
27042 /* RelationalOperator: '<S23>/Operator' incorporates:
27043 * Constant: '<S1>/Constant2'
27044 */
27045 L4_MABX_B.Operator_eb = (L4_MABX_P.Constant2_Value_j == DIAG_CAN2_Status);
27046
27047 /* Outputs for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_2' incorporates:
27048 * EnablePort: '<S12>/Enable'
27049 */
27050 if (L4_MABX_B.Operator_eb) {
27051 /* Reshape: '<S36>/Reshape' incorporates:
27052 * Constant: '<S36>/Constant'
27053 */
27054 L4_MABX_B.Reshape_a5[0] = L4_MABX_P.Repeating_Sequence_Stair_OutV_d[0];
27055 L4_MABX_B.Reshape_a5[1] = L4_MABX_P.Repeating_Sequence_Stair_OutV_d[1];
27056
27057 /* UnitDelay: '<S36>/Unit_Delay' */
27058 L4_MABX_B.Unit_Delay_g = L4_MABX_DW.Unit_Delay_DSTATE_je;
27059
27060 /* UnitDelay: '<S37>/Unit Delay' */
27061 L4_MABX_B.UnitDelay_b = L4_MABX_DW.UnitDelay_DSTATE_b;
27062
27063 /* Switch: '<S40>/Switch1' incorporates:
27064 * Constant: '<S37>/E'
27065 * Constant: '<S37>/IV'
27066 * Switch: '<S39>/Switch1'
27067 */
27068 if (L4_MABX_B.Unit_Delay_g) {
27069 L4_MABX_B.Switch1_i = L4_MABX_P.IV_Value_e;
27070 } else {
27071 if (L4_MABX_P.E_Value_l) {
27072 /* Sum: '<S37>/Subtract' incorporates:
27073 * Constant: '<S37>/Constant'
27074 * Switch: '<S39>/Switch1'
27075 */
27076 q0 = L4_MABX_P.Constant_Value_ae;
27077 qY = q0 + L4_MABX_B.UnitDelay_b;
27078 if (qY < q0) {
27079 qY = MAX_uint32_T;
27080 }
27081
27082 L4_MABX_B.Subtract_nc = qY;
27083
27084 /* End of Sum: '<S37>/Subtract' */
27085
27086 /* Switch: '<S39>/Switch1' */
27087 L4_MABX_B.Switch1_hm = L4_MABX_B.Subtract_nc;
27088 } else {
27089 /* Switch: '<S39>/Switch1' */
27090 L4_MABX_B.Switch1_hm = L4_MABX_B.UnitDelay_b;
27091 }
27092
27093 L4_MABX_B.Switch1_i = L4_MABX_B.Switch1_hm;
27094 }
27095
27096 /* End of Switch: '<S40>/Switch1' */
27097
27098 /* Selector: '<S36>/Selector' */
27099 L4_MABX_B.Selector_b = L4_MABX_B.Reshape_a5[(int32_T)L4_MABX_B.Switch1_i - 1];
27100
27101 /* Outputs for Triggered SubSystem: '<S12>/CAN_TYPE1_BOR_M1_C2' incorporates:
27102 * TriggerPort: '<S35>/Trigger'
27103 */
27104 zcEvent = (((L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C2_Trig_ZCE == POS_ZCSIG) !=
27105 (int32_T)L4_MABX_B.Selector_b) &&
27106 (L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C2_Trig_ZCE !=
27107 UNINITIALIZED_ZCSIG));
27108 if (zcEvent) {
27109 /* S-Function (rti_commonblock): '<S35>/S-Function1' */
27110 /* This comment workarounds a code generation problem */
27111
27112 /* dSPACE RTICAN Bus Off Recovery block */
27113 /* ... Perform software-reset of the CAN microcontroller */
27114 {
27115 UInt32 loop_counter, memory;
27116 loop_counter = 0;
27117 while ((rtican_type1_tq_error[0][0] = can_tp1_channel_BOff_return
27118 (can_type1_channel_M1_C2)) == DSMCOM_BUFFER_OVERFLOW) {
27119 loop_counter++;
27120 if (loop_counter > MAX_LOOP) {
27121 memory = rtican_type1_error_level;
27122 rtican_type1_error_level = 1;
27123 rtican_type1_tq_err_sig(0, 0);
27124 rtican_type1_error_level = memory;
27125 break;
27126 }
27127 }
27128
27129 while ((rtican_type1_tq_error[0][0] = can_tp1_channel_all_wakeup
27130 (can_type1_channel_M1_C2)) == DSMCOM_BUFFER_OVERFLOW) {
27131 loop_counter++;
27132 if (loop_counter > MAX_LOOP) {
27133 memory = rtican_type1_error_level;
27134 rtican_type1_error_level = 1;
27135 rtican_type1_tq_err_sig(0, 0);
27136 rtican_type1_error_level = memory;
27137 break;
27138 }
27139 }
27140 }
27141 }
27142
27143 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C2_Trig_ZCE = L4_MABX_B.Selector_b;
27144
27145 /* End of Outputs for SubSystem: '<S12>/CAN_TYPE1_BOR_M1_C2' */
27146
27147 /* RelationalOperator: '<S38>/Operator' */
27148 L4_MABX_B.Operator_bsv = (L4_MABX_B.Switch1_i == L4_MABX_ConstB.Width_g);
27149 }
27150
27151 /* End of Outputs for SubSystem: '<S1>/BUS_OFF_RECOVERY_2' */
27152 /* user code (Output function Trailer for TID5) */
27153
27154 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
27155 /* EventChannel: 0 */
27156 if (tid == 0) {
27157 DSXCP_service(0);
27158 }
27159
27160 /* If subsystem generates rate grouping Output functions,
27161 * when tid is used in Output function for one rate,
27162 * all Output functions include tid as a local variable.
27163 * As result, some Output functions may have unused tid.
27164 */
27165 UNUSED_PARAMETER(tid);
27166}
27167
27168/* Model update function for TID5 */
27169void L4_MABX_update5(void) /* Sample time: [0.5s, 0.0s] */
27170{
27171 /* Update for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_1' incorporates:
27172 * EnablePort: '<S11>/Enable'
27173 */
27174 if (L4_MABX_B.Operator_eu) {
27175 /* Update for UnitDelay: '<S30>/Unit_Delay' */
27176 L4_MABX_DW.Unit_Delay_DSTATE_f1 = L4_MABX_B.Operator_f5e;
27177
27178 /* Update for UnitDelay: '<S31>/Unit Delay' */
27179 L4_MABX_DW.UnitDelay_DSTATE_j = L4_MABX_B.Switch1_o0;
27180 }
27181
27182 /* End of Update for SubSystem: '<S1>/BUS_OFF_RECOVERY_1' */
27183
27184 /* Update for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_5' incorporates:
27185 * EnablePort: '<S15>/Enable'
27186 */
27187 if (L4_MABX_B.Operator_ms) {
27188 /* Update for UnitDelay: '<S54>/Unit_Delay' */
27189 L4_MABX_DW.Unit_Delay_DSTATE_i5 = L4_MABX_B.Operator_ho;
27190
27191 /* Update for UnitDelay: '<S55>/Unit Delay' */
27192 L4_MABX_DW.UnitDelay_DSTATE_p = L4_MABX_B.Switch1_k;
27193 }
27194
27195 /* End of Update for SubSystem: '<S1>/BUS_OFF_RECOVERY_5' */
27196
27197 /* Update for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_6' incorporates:
27198 * EnablePort: '<S16>/Enable'
27199 */
27200 if (L4_MABX_B.Operator_fv) {
27201 /* Update for UnitDelay: '<S60>/Unit_Delay' */
27202 L4_MABX_DW.Unit_Delay_DSTATE_l5 = L4_MABX_B.Operator_bg;
27203
27204 /* Update for UnitDelay: '<S61>/Unit Delay' */
27205 L4_MABX_DW.UnitDelay_DSTATE_dr = L4_MABX_B.Switch1_h;
27206 }
27207
27208 /* End of Update for SubSystem: '<S1>/BUS_OFF_RECOVERY_6' */
27209
27210 /* Update for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_3' incorporates:
27211 * EnablePort: '<S13>/Enable'
27212 */
27213 if (L4_MABX_B.Operator_bs) {
27214 /* Update for UnitDelay: '<S42>/Unit_Delay' */
27215 L4_MABX_DW.Unit_Delay_DSTATE_h41 = L4_MABX_B.Operator_dh;
27216
27217 /* Update for UnitDelay: '<S43>/Unit Delay' */
27218 L4_MABX_DW.UnitDelay_DSTATE_dr4 = L4_MABX_B.Switch1_k4;
27219 }
27220
27221 /* End of Update for SubSystem: '<S1>/BUS_OFF_RECOVERY_3' */
27222
27223 /* Update for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_4' incorporates:
27224 * EnablePort: '<S14>/Enable'
27225 */
27226 if (L4_MABX_B.Operator_bw) {
27227 /* Update for UnitDelay: '<S48>/Unit_Delay' */
27228 L4_MABX_DW.Unit_Delay_DSTATE_mq = L4_MABX_B.Operator_ou;
27229
27230 /* Update for UnitDelay: '<S49>/Unit Delay' */
27231 L4_MABX_DW.UnitDelay_DSTATE_h = L4_MABX_B.Switch1_ex;
27232 }
27233
27234 /* End of Update for SubSystem: '<S1>/BUS_OFF_RECOVERY_4' */
27235
27236 /* Update for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_2' incorporates:
27237 * EnablePort: '<S12>/Enable'
27238 */
27239 if (L4_MABX_B.Operator_eb) {
27240 /* Update for UnitDelay: '<S36>/Unit_Delay' */
27241 L4_MABX_DW.Unit_Delay_DSTATE_je = L4_MABX_B.Operator_bsv;
27242
27243 /* Update for UnitDelay: '<S37>/Unit Delay' */
27244 L4_MABX_DW.UnitDelay_DSTATE_b = L4_MABX_B.Switch1_i;
27245 }
27246
27247 /* End of Update for SubSystem: '<S1>/BUS_OFF_RECOVERY_2' */
27248}
27249
27250/* Model output function for TID6 */
27251void L4_MABX_output6(void) /* Sample time: [1.0s, 0.0s] */
27252{
27253 int_T tid = 6;
27254
27255 /* Outputs for Atomic SubSystem: '<S815>/CAN_TX_1000ms' */
27256
27257 /* DataTypeConversion: '<S827>/Data Type Conversion' incorporates:
27258 * Constant: '<S818>/Constant2'
27259 */
27260 L4_MABX_B.DataTypeConversion_br = (uint8_T)L4_MABX_P.Constant2_Value_o;
27261
27262 /* S-Function (sfix_bitop): '<S832>/Operator' */
27263 L4_MABX_B.Operator_dw = (uint8_T)(L4_MABX_B.DataTypeConversion_br &
27264 L4_MABX_P.Operator_BitMask);
27265
27266 /* DataTypeConversion: '<S832>/DataType' */
27267 L4_MABX_B.DataType_bu = L4_MABX_B.Operator_dw;
27268
27269 /* ArithShift: '<S827>/Shift_Arithmetic 2' */
27270 L4_MABX_B.Shift_Arithmetic2_a = ldexp(L4_MABX_B.DataType_bu, (-3));
27271
27272 /* DataTypeConversion: '<S827>/Data Type Conversion5' */
27273 L4_MABX_B.DataTypeConversion5_hz = (L4_MABX_B.Shift_Arithmetic2_a != 0.0);
27274
27275 /* Outputs for Enabled SubSystem: '<S835>/AIR1' incorporates:
27276 * EnablePort: '<S836>/Enable'
27277 */
27278 if (L4_MABX_B.DataTypeConversion5_hz) {
27279 /* S-Function (rti_commonblock): '<S836>/S-Function1' */
27280 /* This comment workarounds a code generation problem */
27281
27282 /* dSPACE RTICAN TX Message Block: "AIR1" Id:419343921 */
27283 {
27284 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
27285
27286 Float32 delayTime = 0.0;
27287
27288 /* ... Read status and timestamp info (previous message) */
27289 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]);
27290
27291 /* Convert timestamp */
27292 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->processed) {
27293 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->timestamp =
27294 rtk_dsts_time_to_simtime_convert
27295 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->timestamp);
27296 }
27297
27298 /* Messages with timestamp zero have been received in pause/stop state
27299 and must not be handled.
27300 */
27301 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->timestamp > 0.0) {
27302 L4_MABX_B.SFunction1_o1_h = (real_T)
27303 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->processed;
27304 L4_MABX_B.SFunction1_o2_eh = (real_T)
27305 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->timestamp;
27306 L4_MABX_B.SFunction1_o3_nc = (real_T)
27307 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->deltatime;
27308 L4_MABX_B.SFunction1_o4_md = (real_T)
27309 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->delaytime;
27310 }
27311
27312 /* ... Encode Simulink signals of TX and RM blocks*/
27313 {
27314 rtican_Signal_t CAN_Sgn;
27315
27316 /* ...... "PneumaticSupplyPress" (0|8, standard signal, unsigned int, little endian) */
27317 /* Add or substract 0.5 in order to round to nearest integer */
27318 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.PneumaticSupplyPress - ( 0 )
27319 ) / 8 + 0.5);
27320 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27321 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
27322
27323 /* ...... "ParkingAnd_orTrailerAirPress" (8|8, standard signal, unsigned int, little endian) */
27324 /* Add or substract 0.5 in order to round to nearest integer */
27325 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkingAnd_orTrailerAirPress
27326 - ( 0 ) ) / 8 + 0.5);
27327 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27328 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
27329
27330 /* ...... "ServiceBrakeCircuit1AirPress" (16|8, standard signal, unsigned int, little endian) */
27331 /* Add or substract 0.5 in order to round to nearest integer */
27332 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ServiceBrakeCircuit1AirPress
27333 - ( 0 ) ) / 8 + 0.5);
27334 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27335 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
27336
27337 /* ...... "ServiceBrakeCircuit2AirPress" (24|8, standard signal, unsigned int, little endian) */
27338 /* Add or substract 0.5 in order to round to nearest integer */
27339 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ServiceBrakeCircuit2AirPress
27340 - ( 0 ) ) / 8 + 0.5);
27341 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27342 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
27343
27344 /* ...... "AuxEquipmentSupplyPress" (32|8, standard signal, unsigned int, little endian) */
27345 /* Add or substract 0.5 in order to round to nearest integer */
27346 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.AuxEquipmentSupplyPress -
27347 ( 0 ) ) / 8 + 0.5);
27348 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27349 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
27350
27351 /* ...... "AirSuspensionSupplyPress" (40|8, standard signal, unsigned int, little endian) */
27352 /* Add or substract 0.5 in order to round to nearest integer */
27353 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.AirSuspensionSupplyPress - (
27354 0 ) ) / 8 + 0.5);
27355 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27356 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
27357
27358 /* ...... "AirCompressorStatus" (48|2, standard signal, unsigned int, little endian) */
27359 /* Add or substract 0.5 in order to round to nearest integer */
27360 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.AirCompressorStatus ) + 0.5);
27361 CAN_Sgn.UnsignedSgn &= 0x00000003;
27362 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
27363
27364 /* ...... "PowertrainCircuitAirSupplyPress" (56|8, standard signal, unsigned int, little endian) */
27365 /* Add or substract 0.5 in order to round to nearest integer */
27366 CAN_Sgn.UnsignedSgn = (UInt32)
27367 (( L4_MABX_B.PowertrainCircuitAirSupplyPress - ( 0 ) ) / 8 + 0.5);
27368 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27369 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
27370 }
27371
27372 /* mask unused bits with '1' */
27373 CAN_Msg[6] |= 0xFC;
27374
27375 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
27376 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31], 8,
27377 &(CAN_Msg[0]), delayTime);
27378 }
27379 }
27380
27381 /* End of Outputs for SubSystem: '<S835>/AIR1' */
27382
27383 /* S-Function (sfix_bitop): '<S829>/Operator' */
27384 L4_MABX_B.Operator_my = (uint8_T)(L4_MABX_B.DataTypeConversion_br &
27385 L4_MABX_P.Operator_BitMask_g);
27386
27387 /* DataTypeConversion: '<S829>/DataType' */
27388 L4_MABX_B.DataType_lp = L4_MABX_B.Operator_my;
27389
27390 /* S-Function (sfix_bitop): '<S830>/Operator' */
27391 L4_MABX_B.Operator_pt = (uint8_T)(L4_MABX_B.DataTypeConversion_br &
27392 L4_MABX_P.Operator_BitMask_i);
27393
27394 /* DataTypeConversion: '<S830>/DataType' */
27395 L4_MABX_B.DataType_oc = L4_MABX_B.Operator_pt;
27396
27397 /* S-Function (sfix_bitop): '<S831>/Operator' */
27398 L4_MABX_B.Operator_ix = (uint8_T)(L4_MABX_B.DataTypeConversion_br &
27399 L4_MABX_P.Operator_BitMask_gf);
27400
27401 /* DataTypeConversion: '<S831>/DataType' */
27402 L4_MABX_B.DataType_ia = L4_MABX_B.Operator_ix;
27403
27404 /* S-Function (sfix_bitop): '<S833>/Operator' */
27405 L4_MABX_B.Operator_f5 = (uint8_T)(L4_MABX_B.DataTypeConversion_br &
27406 L4_MABX_P.Operator_BitMask_d);
27407
27408 /* DataTypeConversion: '<S833>/DataType' */
27409 L4_MABX_B.DataType_b4 = L4_MABX_B.Operator_f5;
27410
27411 /* S-Function (sfix_bitop): '<S834>/Operator' */
27412 L4_MABX_B.Operator_h5 = (uint8_T)(L4_MABX_B.DataTypeConversion_br &
27413 L4_MABX_P.Operator_BitMask_a);
27414
27415 /* DataTypeConversion: '<S834>/DataType' */
27416 L4_MABX_B.DataType_d = L4_MABX_B.Operator_h5;
27417
27418 /* DataTypeConversion: '<S827>/Data Type Conversion2' */
27419 L4_MABX_B.DataTypeConversion2_ln = (L4_MABX_B.DataType_lp != 0);
27420
27421 /* ArithShift: '<S827>/Shift_Arithmetic ' */
27422 L4_MABX_B.Shift_Arithmetic_a = ldexp(L4_MABX_B.DataType_oc, (-1));
27423
27424 /* DataTypeConversion: '<S827>/Data Type Conversion3' */
27425 L4_MABX_B.DataTypeConversion3_g0 = (L4_MABX_B.Shift_Arithmetic_a != 0.0);
27426
27427 /* ArithShift: '<S827>/Shift_Arithmetic 1' */
27428 L4_MABX_B.Shift_Arithmetic1_o = ldexp(L4_MABX_B.DataType_ia, (-2));
27429
27430 /* DataTypeConversion: '<S827>/Data Type Conversion4' */
27431 L4_MABX_B.DataTypeConversion4_g = (L4_MABX_B.Shift_Arithmetic1_o != 0.0);
27432
27433 /* ArithShift: '<S827>/Shift_Arithmetic 3' */
27434 L4_MABX_B.Shift_Arithmetic3_lq = ldexp(L4_MABX_B.DataType_b4, (-4));
27435
27436 /* DataTypeConversion: '<S827>/Data Type Conversion6' */
27437 L4_MABX_B.DataTypeConversion6_k = (L4_MABX_B.Shift_Arithmetic3_lq != 0.0);
27438
27439 /* ArithShift: '<S827>/Shift_Arithmetic 4' */
27440 L4_MABX_B.Shift_Arithmetic4_n = ldexp(L4_MABX_B.DataType_d, (-5));
27441
27442 /* DataTypeConversion: '<S827>/Data Type Conversion7' */
27443 L4_MABX_B.DataTypeConversion7_ah = (L4_MABX_B.Shift_Arithmetic4_n != 0.0);
27444
27445 /* DataTypeConversion: '<S828>/Data Type Conversion' incorporates:
27446 * Constant: '<S818>/Constant1'
27447 */
27448 L4_MABX_B.DataTypeConversion_le = (uint8_T)L4_MABX_P.Constant1_Value_fn;
27449
27450 /* S-Function (sfix_bitop): '<S840>/Operator' */
27451 L4_MABX_B.Operator_hgi = (uint8_T)(L4_MABX_B.DataTypeConversion_le &
27452 L4_MABX_P.Operator_BitMask_k);
27453
27454 /* DataTypeConversion: '<S840>/DataType' */
27455 L4_MABX_B.DataType_kd = L4_MABX_B.Operator_hgi;
27456
27457 /* ArithShift: '<S828>/Shift_Arithmetic 2' */
27458 L4_MABX_B.Shift_Arithmetic2_eb = ldexp(L4_MABX_B.DataType_kd, (-3));
27459
27460 /* DataTypeConversion: '<S828>/Data Type Conversion5' */
27461 L4_MABX_B.DataTypeConversion5_ch = (L4_MABX_B.Shift_Arithmetic2_eb != 0.0);
27462
27463 /* Outputs for Enabled SubSystem: '<S843>/AMB' incorporates:
27464 * EnablePort: '<S844>/Enable'
27465 */
27466 if (L4_MABX_B.DataTypeConversion5_ch) {
27467 /* S-Function (rti_commonblock): '<S844>/S-Function1' */
27468 /* This comment workarounds a code generation problem */
27469
27470 /* dSPACE RTICAN TX Message Block: "AMB" Id:419362048 */
27471 {
27472 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
27473
27474 Float32 delayTime = 0.0;
27475
27476 /* ... Read status and timestamp info (previous message) */
27477 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]);
27478
27479 /* Convert timestamp */
27480 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->processed) {
27481 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->timestamp =
27482 rtk_dsts_time_to_simtime_convert
27483 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->timestamp);
27484 }
27485
27486 /* Messages with timestamp zero have been received in pause/stop state
27487 and must not be handled.
27488 */
27489 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->timestamp > 0.0) {
27490 L4_MABX_B.SFunction1_o1_kge = (real_T)
27491 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->processed;
27492 L4_MABX_B.SFunction1_o2_ob = (real_T)
27493 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->timestamp;
27494 L4_MABX_B.SFunction1_o3_ha = (real_T)
27495 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->deltatime;
27496 L4_MABX_B.SFunction1_o4_m = (real_T)
27497 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->delaytime;
27498 }
27499
27500 /* ... Encode Simulink signals of TX and RM blocks*/
27501 {
27502 rtican_Signal_t CAN_Sgn;
27503
27504 /* ...... "BarometricPress" (0|8, standard signal, unsigned int, little endian) */
27505 /* Add or substract 0.5 in order to round to nearest integer */
27506 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.BarometricPress_k - ( 0 ) ) /
27507 0.5 + 0.5);
27508 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27509 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
27510
27511 /* ...... "CabInteriorTemp" (8|16, standard signal, unsigned int, little endian) */
27512 /* Add or substract 0.5 in order to round to nearest integer */
27513 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CabInteriorTemp - ( -273 ) )
27514 / 0.03125 + 0.5);
27515 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
27516 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
27517 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte1;
27518
27519 /* ...... "AmbientAirTemp" (24|16, standard signal, unsigned int, little endian) */
27520 /* Add or substract 0.5 in order to round to nearest integer */
27521 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.AmbientAirTemp_a - ( -273 ) )
27522 / 0.03125 + 0.5);
27523 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
27524 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
27525 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte1;
27526
27527 /* ...... "EngAirIntakeTemp" (40|8, standard signal, unsigned int, little endian) */
27528 /* Add or substract 0.5 in order to round to nearest integer */
27529 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.EngAirIntakeTemp - ( -40 ) +
27530 0.5);
27531 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27532 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
27533
27534 /* ...... "RoadSurfaceTemp" (48|16, standard signal, unsigned int, little endian) */
27535 /* Add or substract 0.5 in order to round to nearest integer */
27536 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.RoadSurfaceTemp - ( -273 ) )
27537 / 0.03125 + 0.5);
27538 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
27539 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
27540 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte1;
27541 }
27542
27543 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
27544 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500], 8,
27545 &(CAN_Msg[0]), delayTime);
27546 }
27547 }
27548
27549 /* End of Outputs for SubSystem: '<S843>/AMB' */
27550
27551 /* S-Function (sfix_bitop): '<S837>/Operator' */
27552 L4_MABX_B.Operator_gt = (uint8_T)(L4_MABX_B.DataTypeConversion_le &
27553 L4_MABX_P.Operator_BitMask_j);
27554
27555 /* DataTypeConversion: '<S837>/DataType' */
27556 L4_MABX_B.DataType_f0 = L4_MABX_B.Operator_gt;
27557
27558 /* S-Function (sfix_bitop): '<S838>/Operator' */
27559 L4_MABX_B.Operator_hz = (uint8_T)(L4_MABX_B.DataTypeConversion_le &
27560 L4_MABX_P.Operator_BitMask_b);
27561
27562 /* DataTypeConversion: '<S838>/DataType' */
27563 L4_MABX_B.DataType_dx = L4_MABX_B.Operator_hz;
27564
27565 /* S-Function (sfix_bitop): '<S839>/Operator' */
27566 L4_MABX_B.Operator_pf = (uint8_T)(L4_MABX_B.DataTypeConversion_le &
27567 L4_MABX_P.Operator_BitMask_f);
27568
27569 /* DataTypeConversion: '<S839>/DataType' */
27570 L4_MABX_B.DataType_e = L4_MABX_B.Operator_pf;
27571
27572 /* S-Function (sfix_bitop): '<S841>/Operator' */
27573 L4_MABX_B.Operator_cv = (uint8_T)(L4_MABX_B.DataTypeConversion_le &
27574 L4_MABX_P.Operator_BitMask_fd);
27575
27576 /* DataTypeConversion: '<S841>/DataType' */
27577 L4_MABX_B.DataType_l = L4_MABX_B.Operator_cv;
27578
27579 /* S-Function (sfix_bitop): '<S842>/Operator' */
27580 L4_MABX_B.Operator_lp = (uint8_T)(L4_MABX_B.DataTypeConversion_le &
27581 L4_MABX_P.Operator_BitMask_dm);
27582
27583 /* DataTypeConversion: '<S842>/DataType' */
27584 L4_MABX_B.DataType_lz = L4_MABX_B.Operator_lp;
27585
27586 /* DataTypeConversion: '<S828>/Data Type Conversion2' */
27587 L4_MABX_B.DataTypeConversion2_kr = (L4_MABX_B.DataType_f0 != 0);
27588
27589 /* ArithShift: '<S828>/Shift_Arithmetic ' */
27590 L4_MABX_B.Shift_Arithmetic_b = ldexp(L4_MABX_B.DataType_dx, (-1));
27591
27592 /* DataTypeConversion: '<S828>/Data Type Conversion3' */
27593 L4_MABX_B.DataTypeConversion3_mq = (L4_MABX_B.Shift_Arithmetic_b != 0.0);
27594
27595 /* ArithShift: '<S828>/Shift_Arithmetic 1' */
27596 L4_MABX_B.Shift_Arithmetic1_l = ldexp(L4_MABX_B.DataType_e, (-2));
27597
27598 /* DataTypeConversion: '<S828>/Data Type Conversion4' */
27599 L4_MABX_B.DataTypeConversion4_o2 = (L4_MABX_B.Shift_Arithmetic1_l != 0.0);
27600
27601 /* ArithShift: '<S828>/Shift_Arithmetic 3' */
27602 L4_MABX_B.Shift_Arithmetic3_hn = ldexp(L4_MABX_B.DataType_l, (-4));
27603
27604 /* DataTypeConversion: '<S828>/Data Type Conversion6' */
27605 L4_MABX_B.DataTypeConversion6_ga = (L4_MABX_B.Shift_Arithmetic3_hn != 0.0);
27606
27607 /* ArithShift: '<S828>/Shift_Arithmetic 4' */
27608 L4_MABX_B.Shift_Arithmetic4_g = ldexp(L4_MABX_B.DataType_lz, (-5));
27609
27610 /* DataTypeConversion: '<S828>/Data Type Conversion7' */
27611 L4_MABX_B.DataTypeConversion7_i5 = (L4_MABX_B.Shift_Arithmetic4_g != 0.0);
27612
27613 /* End of Outputs for SubSystem: '<S815>/CAN_TX_1000ms' */
27614 /* user code (Output function Trailer for TID6) */
27615
27616 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
27617 /* EventChannel: 0 */
27618 if (tid == 0) {
27619 DSXCP_service(0);
27620 }
27621
27622 /* If subsystem generates rate grouping Output functions,
27623 * when tid is used in Output function for one rate,
27624 * all Output functions include tid as a local variable.
27625 * As result, some Output functions may have unused tid.
27626 */
27627 UNUSED_PARAMETER(tid);
27628}
27629
27630/* Model update function for TID6 */
27631void L4_MABX_update6(void) /* Sample time: [1.0s, 0.0s] */
27632{
27633 /* (no update code required) */
27634}
27635
27636/* Model output function for TID7 */
27637void L4_MABX_output7(void) /* Sample time: [5.0s, 0.0s] */
27638{
27639 int_T tid = 7;
27640 int32_T i;
27641 uint16_T tmp;
27642 uint32_T q0;
27643 uint32_T qY;
27644
27645 /* Outputs for Atomic SubSystem: '<S815>/CAN_TX_5000ms' */
27646
27647 /* DataTypeConversion: '<S1006>/Data Type Conversion6' incorporates:
27648 * Constant: '<S1006>/Enable_TX_RequestDiagMsgFromREAX'
27649 */
27650 L4_MABX_B.DataTypeConversion6_el = L4_MABX_P.Enable_TX_RequestDiagMsgFromREA;
27651
27652 /* Logic: '<S1010>/Operator' */
27653 L4_MABX_B.Operator_gn = (L4_MABX_B.DataTypeConversion6_el &&
27654 L4_MABX_B.TmpRTBAtOperatorInport2);
27655
27656 /* DataTypeConversion: '<S1010>/DataType' */
27657 L4_MABX_B.DataType_ozv = L4_MABX_B.Operator_gn;
27658
27659 /* Reshape: '<S1015>/Reshape' incorporates:
27660 * Constant: '<S1015>/Constant'
27661 */
27662 for (i = 0; i < 8; i++) {
27663 L4_MABX_B.Reshape[i] = L4_MABX_P.Repeating_Sequence_Stair_OutVal[i];
27664 }
27665
27666 /* End of Reshape: '<S1015>/Reshape' */
27667
27668 /* UnitDelay: '<S1015>/Unit_Delay' */
27669 L4_MABX_B.Unit_Delay_ew = L4_MABX_DW.Unit_Delay_DSTATE_g3;
27670
27671 /* UnitDelay: '<S1016>/Unit Delay' */
27672 L4_MABX_B.UnitDelay_pu = L4_MABX_DW.UnitDelay_DSTATE_i;
27673
27674 /* Switch: '<S1019>/Switch1' incorporates:
27675 * Constant: '<S1016>/E'
27676 * Constant: '<S1016>/IV'
27677 * Switch: '<S1018>/Switch1'
27678 */
27679 if (L4_MABX_B.Unit_Delay_ew) {
27680 L4_MABX_B.Switch1_o = L4_MABX_P.IV_Value_j;
27681 } else {
27682 if (L4_MABX_P.E_Value_ng) {
27683 /* Sum: '<S1016>/Subtract' incorporates:
27684 * Constant: '<S1016>/Constant'
27685 * Switch: '<S1018>/Switch1'
27686 */
27687 q0 = L4_MABX_P.Constant_Value_pf;
27688 qY = q0 + L4_MABX_B.UnitDelay_pu;
27689 if (qY < q0) {
27690 qY = MAX_uint32_T;
27691 }
27692
27693 L4_MABX_B.Subtract_ka = qY;
27694
27695 /* End of Sum: '<S1016>/Subtract' */
27696
27697 /* Switch: '<S1018>/Switch1' */
27698 L4_MABX_B.Switch1_e = L4_MABX_B.Subtract_ka;
27699 } else {
27700 /* Switch: '<S1018>/Switch1' */
27701 L4_MABX_B.Switch1_e = L4_MABX_B.UnitDelay_pu;
27702 }
27703
27704 L4_MABX_B.Switch1_o = L4_MABX_B.Switch1_e;
27705 }
27706
27707 /* End of Switch: '<S1019>/Switch1' */
27708
27709 /* Selector: '<S1015>/Selector' */
27710 L4_MABX_B.Selector = L4_MABX_B.Reshape[(int32_T)L4_MABX_B.Switch1_o - 1];
27711
27712 /* DataTypeConversion: '<S1007>/Data Type Conversion' */
27713 L4_MABX_B.DataTypeConversion_mr = L4_MABX_B.Selector;
27714
27715 /* S-Function (sfix_bitop): '<S1012>/Operator' */
27716 L4_MABX_B.Operator = L4_MABX_B.DataTypeConversion_mr &
27717 L4_MABX_P.Operator_BitMask_ko;
27718
27719 /* DataTypeConversion: '<S1012>/DataType' */
27720 q0 = L4_MABX_B.Operator;
27721 if (q0 > 255U) {
27722 q0 = 255U;
27723 }
27724
27725 L4_MABX_B.DataType_ip = (uint8_T)q0;
27726
27727 /* End of DataTypeConversion: '<S1012>/DataType' */
27728
27729 /* DataTypeConversion: '<S1007>/Data Type Conversion3' */
27730 L4_MABX_B.DataTypeConversion3_py = L4_MABX_B.DataType_ip;
27731
27732 /* DataTypeConversion: '<S1009>/Data Type Conversion' */
27733 L4_MABX_B.DataTypeConversion_m = L4_MABX_B.DataTypeConversion3_py;
27734
27735 /* S-Function (sfix_bitop): '<S1013>/Operator' */
27736 L4_MABX_B.Operator_d = L4_MABX_B.DataTypeConversion_mr &
27737 L4_MABX_P.Operator_BitMask_fx;
27738
27739 /* DataTypeConversion: '<S1013>/DataType' */
27740 q0 = L4_MABX_B.Operator_d;
27741 if (q0 > 65535U) {
27742 q0 = 65535U;
27743 }
27744
27745 L4_MABX_B.DataType_jr = (uint16_T)q0;
27746
27747 /* End of DataTypeConversion: '<S1013>/DataType' */
27748
27749 /* ArithShift: '<S1007>/Shift_Arithmetic ' */
27750 L4_MABX_B.Shift_Arithmetic_m = (uint16_T)((uint32_T)L4_MABX_B.DataType_jr >> 8);
27751
27752 /* DataTypeConversion: '<S1007>/Data Type Conversion1' */
27753 tmp = L4_MABX_B.Shift_Arithmetic_m;
27754 if (tmp > 255) {
27755 tmp = 255U;
27756 }
27757
27758 L4_MABX_B.DataTypeConversion1_pl = (uint8_T)tmp;
27759
27760 /* End of DataTypeConversion: '<S1007>/Data Type Conversion1' */
27761
27762 /* DataTypeConversion: '<S1009>/Data Type Conversion1' */
27763 L4_MABX_B.DataTypeConversion1_c = L4_MABX_B.DataTypeConversion1_pl;
27764
27765 /* S-Function (sfix_bitop): '<S1014>/Operator' */
27766 L4_MABX_B.Operator_c = L4_MABX_B.DataTypeConversion_mr &
27767 L4_MABX_P.Operator_BitMask_aa;
27768
27769 /* DataTypeConversion: '<S1014>/DataType' */
27770 L4_MABX_B.DataType_f3 = L4_MABX_B.Operator_c;
27771
27772 /* ArithShift: '<S1007>/Shift_Arithmetic 1' */
27773 L4_MABX_B.Shift_Arithmetic1_n = L4_MABX_B.DataType_f3 >> 16;
27774
27775 /* DataTypeConversion: '<S1007>/Data Type Conversion2' */
27776 q0 = L4_MABX_B.Shift_Arithmetic1_n;
27777 if (q0 > 255U) {
27778 q0 = 255U;
27779 }
27780
27781 L4_MABX_B.DataTypeConversion2_ep = (uint8_T)q0;
27782
27783 /* End of DataTypeConversion: '<S1007>/Data Type Conversion2' */
27784
27785 /* DataTypeConversion: '<S1009>/Data Type Conversion2' */
27786 L4_MABX_B.DataTypeConversion2_cc = L4_MABX_B.DataTypeConversion2_ep;
27787
27788 /* Outputs for Enabled SubSystem: '<S1009>/RQST_13_E4' incorporates:
27789 * EnablePort: '<S1011>/Enable'
27790 */
27791 if (L4_MABX_B.DataType_ozv) {
27792 /* S-Function (rti_commonblock): '<S1011>/S-Function1' */
27793 /* This comment workarounds a code generation problem */
27794
27795 /* dSPACE RTICAN TX Message Block: "RQST_13_E4" Id:417993700 */
27796 {
27797 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
27798
27799 Float32 delayTime = 0.0;
27800
27801 /* ... Read status and timestamp info (previous message) */
27802 can_tp1_msg_read(can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]);
27803
27804 /* Convert timestamp */
27805 if (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->processed) {
27806 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->timestamp =
27807 rtk_dsts_time_to_simtime_convert
27808 (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->timestamp);
27809 }
27810
27811 /* Messages with timestamp zero have been received in pause/stop state
27812 and must not be handled.
27813 */
27814 if (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->timestamp > 0.0) {
27815 L4_MABX_B.SFunction1_o1_mo = (real_T)
27816 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->processed;
27817 L4_MABX_B.SFunction1_o2_c = (real_T)
27818 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->timestamp;
27819 L4_MABX_B.SFunction1_o3_k = (real_T)
27820 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->deltatime;
27821 L4_MABX_B.SFunction1_o4_b = (real_T)
27822 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->delaytime;
27823 }
27824
27825 /* ... Encode Simulink signals of TX and RM blocks*/
27826 {
27827 rtican_Signal_t CAN_Sgn;
27828
27829 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
27830 /* Add or substract 0.5 in order to round to nearest integer */
27831 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_m ) + 0.5);
27832 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27833 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
27834
27835 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
27836 /* Add or substract 0.5 in order to round to nearest integer */
27837 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_c ) +
27838 0.5);
27839 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27840 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
27841
27842 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
27843 /* Add or substract 0.5 in order to round to nearest integer */
27844 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion2_cc ) +
27845 0.5);
27846 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27847 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
27848 }
27849
27850 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
27851 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4], 8,
27852 &(CAN_Msg[0]), delayTime);
27853 }
27854 }
27855
27856 /* End of Outputs for SubSystem: '<S1009>/RQST_13_E4' */
27857
27858 /* RelationalOperator: '<S1017>/Operator' */
27859 L4_MABX_B.Operator_ny0 = (L4_MABX_B.Switch1_o == L4_MABX_B.Width);
27860
27861 /* End of Outputs for SubSystem: '<S815>/CAN_TX_5000ms' */
27862 /* user code (Output function Trailer for TID7) */
27863
27864 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
27865 /* EventChannel: 0 */
27866 if (tid == 0) {
27867 DSXCP_service(0);
27868 }
27869
27870 /* If subsystem generates rate grouping Output functions,
27871 * when tid is used in Output function for one rate,
27872 * all Output functions include tid as a local variable.
27873 * As result, some Output functions may have unused tid.
27874 */
27875 UNUSED_PARAMETER(tid);
27876}
27877
27878/* Model update function for TID7 */
27879void L4_MABX_update7(void) /* Sample time: [5.0s, 0.0s] */
27880{
27881 /* Update for Atomic SubSystem: '<S815>/CAN_TX_5000ms' */
27882
27883 /* Update for UnitDelay: '<S1015>/Unit_Delay' */
27884 L4_MABX_DW.Unit_Delay_DSTATE_g3 = L4_MABX_B.Operator_ny0;
27885
27886 /* Update for UnitDelay: '<S1016>/Unit Delay' */
27887 L4_MABX_DW.UnitDelay_DSTATE_i = L4_MABX_B.Switch1_o;
27888
27889 /* End of Update for SubSystem: '<S815>/CAN_TX_5000ms' */
27890}
27891
27892/* Model output function for TID8 */
27893void L4_MABX_output8(void) /* Sample time: [10.0s, 0.0s] */
27894{
27895 int_T tid = 8;
27896
27897 /* user code (Output function Trailer for TID8) */
27898
27899 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
27900 /* EventChannel: 0 */
27901 if (tid == 0) {
27902 DSXCP_service(0);
27903 }
27904
27905 /* If subsystem generates rate grouping Output functions,
27906 * when tid is used in Output function for one rate,
27907 * all Output functions include tid as a local variable.
27908 * As result, some Output functions may have unused tid.
27909 */
27910 UNUSED_PARAMETER(tid);
27911}
27912
27913/* Model update function for TID8 */
27914void L4_MABX_update8(void) /* Sample time: [10.0s, 0.0s] */
27915{
27916 /* (no update code required) */
27917}
27918
27919/* Model output wrapper function for compatibility with a static main program */
27920void L4_MABX_output(int_T tid)
27921{
27922 switch (tid) {
27923 case 0 :
27924 L4_MABX_output0();
27925 break;
27926
27927 case 1 :
27928 L4_MABX_output1();
27929 break;
27930
27931 case 2 :
27932 L4_MABX_output2();
27933 break;
27934
27935 case 3 :
27936 L4_MABX_output3();
27937 break;
27938
27939 case 4 :
27940 L4_MABX_output4();
27941 break;
27942
27943 case 5 :
27944 L4_MABX_output5();
27945 break;
27946
27947 case 6 :
27948 L4_MABX_output6();
27949 break;
27950
27951 case 7 :
27952 L4_MABX_output7();
27953 break;
27954
27955 case 8 :
27956 L4_MABX_output8();
27957 break;
27958
27959 default :
27960 break;
27961 }
27962}
27963
27964/* Model update wrapper function for compatibility with a static main program */
27965void L4_MABX_update(int_T tid)
27966{
27967 switch (tid) {
27968 case 0 :
27969 L4_MABX_update0();
27970 break;
27971
27972 case 1 :
27973 L4_MABX_update1();
27974 break;
27975
27976 case 2 :
27977 L4_MABX_update2();
27978 break;
27979
27980 case 3 :
27981 L4_MABX_update3();
27982 break;
27983
27984 case 4 :
27985 L4_MABX_update4();
27986 break;
27987
27988 case 5 :
27989 L4_MABX_update5();
27990 break;
27991
27992 case 6 :
27993 L4_MABX_update6();
27994 break;
27995
27996 case 7 :
27997 L4_MABX_update7();
27998 break;
27999
28000 case 8 :
28001 L4_MABX_update8();
28002 break;
28003
28004 default :
28005 break;
28006 }
28007}
28008
28009/* Model initialize function */
28010void L4_MABX_initialize(void)
28011{
28012 /* Registration code */
28013
28014 /* initialize non-finites */
28015 rt_InitInfAndNaN(sizeof(real_T));
28016
28017 /* non-finite (run-time) assignments */
28018 L4_MABX_P.Saturation_UpperSat = rtInf;
28019 L4_MABX_P.Saturation_UpperSat_o = rtInf;
28020 L4_MABX_P.Saturation_UpperSat_f = rtInf;
28021 L4_MABX_P.Saturation1_UpperSat_j = rtInf;
28022 L4_MABX_P.Saturation_UpperSat_l = rtInf;
28023 L4_MABX_P.Saturation_UpperSat_o1 = rtInf;
28024 L4_MABX_P.Saturation_UpperSat_d = rtInf;
28025 L4_MABX_P.Saturation_UpperSat_ok = rtInf;
28026 L4_MABX_P.Saturation_UpperSat_j = rtInf;
28027 L4_MABX_P.Saturation_UpperSat_p = rtInf;
28028 L4_MABX_P.Calculate_D_term_h.Saturation_UpperSat = rtInf;
28029 L4_MABX_P.Calculate_D_term_p.Saturation_UpperSat = rtInf;
28030 L4_MABX_P.Calculate_D_term.Saturation_UpperSat = rtInf;
28031
28032 /* initialize real-time model */
28033 (void) memset((void *)L4_MABX_M, 0,
28034 sizeof(RT_MODEL_L4_MABX_T));
28035 (L4_MABX_M)->Timing.TaskCounters.cLimit[0] = 1;
28036 (L4_MABX_M)->Timing.TaskCounters.cLimit[1] = 2;
28037 (L4_MABX_M)->Timing.TaskCounters.cLimit[2] = 5;
28038 (L4_MABX_M)->Timing.TaskCounters.cLimit[3] = 10;
28039 (L4_MABX_M)->Timing.TaskCounters.cLimit[4] = 25;
28040 (L4_MABX_M)->Timing.TaskCounters.cLimit[5] = 50;
28041 (L4_MABX_M)->Timing.TaskCounters.cLimit[6] = 100;
28042 (L4_MABX_M)->Timing.TaskCounters.cLimit[7] = 500;
28043 (L4_MABX_M)->Timing.TaskCounters.cLimit[8] = 1000;
28044 rtsiSetSolverName(&L4_MABX_M->solverInfo,"FixedStepDiscrete");
28045 L4_MABX_M->solverInfoPtr = (&L4_MABX_M->solverInfo);
28046
28047 /* Initialize timing info */
28048 {
28049 int_T *mdlTsMap = L4_MABX_M->Timing.sampleTimeTaskIDArray;
28050 int_T i;
28051 for (i = 0; i < 9; i++) {
28052 mdlTsMap[i] = i;
28053 }
28054
28055 L4_MABX_M->Timing.sampleTimeTaskIDPtr = (&mdlTsMap[0]);
28056 L4_MABX_M->Timing.sampleTimes = (&L4_MABX_M->Timing.sampleTimesArray[0]);
28057 L4_MABX_M->Timing.offsetTimes = (&L4_MABX_M->Timing.offsetTimesArray[0]);
28058
28059 /* task periods */
28060 L4_MABX_M->Timing.sampleTimes[0] = (0.01);
28061 L4_MABX_M->Timing.sampleTimes[1] = (0.02);
28062 L4_MABX_M->Timing.sampleTimes[2] = (0.05);
28063 L4_MABX_M->Timing.sampleTimes[3] = (0.1);
28064 L4_MABX_M->Timing.sampleTimes[4] = (0.25);
28065 L4_MABX_M->Timing.sampleTimes[5] = (0.5);
28066 L4_MABX_M->Timing.sampleTimes[6] = (1.0);
28067 L4_MABX_M->Timing.sampleTimes[7] = (5.0);
28068 L4_MABX_M->Timing.sampleTimes[8] = (10.0);
28069
28070 /* task offsets */
28071 L4_MABX_M->Timing.offsetTimes[0] = (0.0);
28072 L4_MABX_M->Timing.offsetTimes[1] = (0.0);
28073 L4_MABX_M->Timing.offsetTimes[2] = (0.0);
28074 L4_MABX_M->Timing.offsetTimes[3] = (0.0);
28075 L4_MABX_M->Timing.offsetTimes[4] = (0.0);
28076 L4_MABX_M->Timing.offsetTimes[5] = (0.0);
28077 L4_MABX_M->Timing.offsetTimes[6] = (0.0);
28078 L4_MABX_M->Timing.offsetTimes[7] = (0.0);
28079 L4_MABX_M->Timing.offsetTimes[8] = (0.0);
28080 }
28081
28082 rtmSetTPtr(L4_MABX_M, &L4_MABX_M->Timing.tArray[0]);
28083
28084 {
28085 int_T *mdlSampleHits = L4_MABX_M->Timing.sampleHitArray;
28086 int_T *mdlPerTaskSampleHits = L4_MABX_M->Timing.perTaskSampleHitsArray;
28087 L4_MABX_M->Timing.perTaskSampleHits = (&mdlPerTaskSampleHits[0]);
28088 mdlSampleHits[0] = 1;
28089 L4_MABX_M->Timing.sampleHits = (&mdlSampleHits[0]);
28090 }
28091
28092 rtmSetTFinal(L4_MABX_M, -1);
28093 L4_MABX_M->Timing.stepSize0 = 0.01;
28094 L4_MABX_M->Timing.stepSize9 = 2.3283064365386963E-10;
28095 L4_MABX_M->Timing.stepSize10 = 2.3283064365386963E-10;
28096 L4_MABX_M->Timing.stepSize11 = 2.3283064365386963E-10;
28097 L4_MABX_M->solverInfoPtr = (&L4_MABX_M->solverInfo);
28098 L4_MABX_M->Timing.stepSize = (0.01);
28099 rtsiSetFixedStepSize(&L4_MABX_M->solverInfo, 0.01);
28100 rtsiSetSolverMode(&L4_MABX_M->solverInfo, SOLVER_MODE_MULTITASKING);
28101
28102 /* block I/O */
28103 (void) memset(((void *) &L4_MABX_B), 0,
28104 sizeof(B_L4_MABX_T));
28105
28106 {
28107 L4_MABX_B.EPBPCMInhibitStatusFeedback = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28108 L4_MABX_B.EPBPCMInhibitStatusFeedback_n = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28109 L4_MABX_B.EPBPCMManualStatusFeedback = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28110 L4_MABX_B.EPBPCMManualStatusFeedback_m = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28111 L4_MABX_B.EPBPCMInhibitStatusFeedback_i = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28112 L4_MABX_B.EPBPCMInhibitStatusFeedback_k = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28113 L4_MABX_B.EPBPCMManualStatusFeedback_p = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28114 L4_MABX_B.EPBPCMManualStatusFeedback_f = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28115 L4_MABX_B.XPRErrorState = ENUM_XPR_ERROR_STATE_T_XPR_OK;
28116 L4_MABX_B.XPRErrorState_l = ENUM_XPR_ERROR_STATE_T_XPR_OK;
28117 L4_MABX_B.XPRControlMode = ENUM_XPR_CONTROL_MODE_T_NO_BRAKE_DEMAND;
28118 L4_MABX_B.XPRControlMode_k = ENUM_XPR_CONTROL_MODE_T_NO_BRAKE_DEMAND;
28119 L4_MABX_B.XBRPassThroughActive = ENUM_XBR_PASS_THROUGH_ACTIVE_T_NOT_ACTIVE;
28120 L4_MABX_B.DataTypeConversion_lr = ENUM_SWITCH_T_OFF;
28121 L4_MABX_B.DataTypeConversion1_lu = ENUM_SWITCH_T_OFF;
28122 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
28123 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
28124 L4_MABX_B.BrkPedArbBrakeSwitch = ENUM_J1939_SWITCH_T_OFF;
28125 L4_MABX_B.BrkPedArbBrakeSwitch_c = ENUM_J1939_SWITCH_T_OFF;
28126 L4_MABX_B.DataTypeConversion1_cy = ENUM_J1939_SWITCH_T_OFF;
28127 L4_MABX_B.DataTypeConversion3_l = ENUM_J1939_SWITCH_T_OFF;
28128 L4_MABX_B.VehCtrlState = ENUM_AUTO_CTRL_VEHICLE_STATE_T_NOT_AVAILABLE;
28129 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_NOT_AVAILABLE;
28130 L4_MABX_B.If_Then_Else_ad.XBRPriority = ENUM_XBR_PRIORITY_T_HIGHEST_PRIORITY;
28131 L4_MABX_B.If_Then_Else_ad.XBRPassThroughActive =
28132 ENUM_XBR_PASS_THROUGH_ACTIVE_T_NOT_ACTIVE;
28133 L4_MABX_B.If_Then_Else_ad.XBREnduranceBrakeIntegrationMod =
28134 ENUM_XBR_EBI_MODE_T_NO_EBI_ALLOWED;
28135 L4_MABX_B.If_Then_Else_ad.XBRControlMode =
28136 ENUM_XBR_CONTROL_MODE_T_OVERRIDE_DISABLED;
28137 }
28138
28139 /* exported global signals */
28140 GLB_Absolute_Timestamp = 0.0;
28141 ReAX_ActualHandwheelPos = 0.0;
28142 EthernetLinkStatus = 0.0;
28143 CurrentAzimuth_rad = 0.0;
28144 TargetAzimuth_rad = 0.0;
28145 TargetVelocity_kph = 0.0;
28146 Curvature = 0.0;
28147 CurrentVelocity_kph = 0.0;
28148 CrosstrackError = 0.0;
28149 GPS_X = 0.0;
28150 GPS_Y = 0.0;
28151 GPS_Time = 0.0;
28152 ReAX_EchoedSteerWheelPos = 0.0;
28153 SteerWheelAngle = 0.0;
28154 YawRate = 0.0;
28155 SPN1810_LongitudinalAcceleration = 0.0;
28156 WheelBasedVehicleSpeed = 0.0;
28157 BrakeSwitch = 0.0;
28158 Lateral_Control_Output = 0.0;
28159 Lateral_Control_Rate_Limiter_Output = 0.0;
28160 SteerCommandDeg = 0.0;
28161 DesiredSteeringAngle = 0.0;
28162 DIAG_CAN1_Count_Stuff_Errors = 0U;
28163 DIAG_CAN1_Count_Format_Errors = 0U;
28164 DIAG_CAN1_Count_Ack_Errors = 0U;
28165 DIAG_CAN1_Count_Bit0_Errors = 0U;
28166 DIAG_CAN1_Count_Bit1_Errors = 0U;
28167 DIAG_CAN1_Count_CRC_Errors = 0U;
28168 DIAG_CAN1_Count_RX_Lost = 0U;
28169 DIAG_CAN1_Count_RX_OK = 0U;
28170 DIAG_CAN1_Count_TX_OK = 0U;
28171 DIAG_CAN5_Count_Stuff_Errors = 0U;
28172 DIAG_CAN5_Count_Format_Errors = 0U;
28173 DIAG_CAN5_Count_Ack_Errors = 0U;
28174 DIAG_CAN5_Count_Bit0_Errors = 0U;
28175 DIAG_CAN5_Count_Bit1_Errors = 0U;
28176 DIAG_CAN5_Count_CRC_Errors = 0U;
28177 DIAG_CAN5_Count_RX_Lost = 0U;
28178 DIAG_CAN5_Count_RX_OK = 0U;
28179 DIAG_CAN5_Count_TX_OK = 0U;
28180 DIAG_CAN6_Count_Stuff_Errors = 0U;
28181 DIAG_CAN6_Count_Format_Errors = 0U;
28182 DIAG_CAN6_Count_Ack_Errors = 0U;
28183 DIAG_CAN6_Count_Bit0_Errors = 0U;
28184 DIAG_CAN6_Count_Bit1_Errors = 0U;
28185 DIAG_CAN6_Count_CRC_Errors = 0U;
28186 DIAG_CAN6_Count_RX_Lost = 0U;
28187 DIAG_CAN6_Count_RX_OK = 0U;
28188 DIAG_CAN6_Count_TX_OK = 0U;
28189 DIAG_CAN3_Count_Stuff_Errors = 0U;
28190 DIAG_CAN3_Count_Format_Errors = 0U;
28191 DIAG_CAN3_Count_Ack_Errors = 0U;
28192 DIAG_CAN3_Count_Bit0_Errors = 0U;
28193 DIAG_CAN3_Count_Bit1_Errors = 0U;
28194 DIAG_CAN3_Count_CRC_Errors = 0U;
28195 DIAG_CAN3_Count_RX_Lost = 0U;
28196 DIAG_CAN3_Count_RX_OK = 0U;
28197 DIAG_CAN3_Count_TX_OK = 0U;
28198 DIAG_CAN4_Count_Stuff_Errors = 0U;
28199 DIAG_CAN4_Count_Format_Errors = 0U;
28200 DIAG_CAN4_Count_Ack_Errors = 0U;
28201 DIAG_CAN4_Count_Bit0_Errors = 0U;
28202 DIAG_CAN4_Count_Bit1_Errors = 0U;
28203 DIAG_CAN4_Count_CRC_Errors = 0U;
28204 DIAG_CAN4_Count_RX_Lost = 0U;
28205 DIAG_CAN4_Count_RX_OK = 0U;
28206 DIAG_CAN4_Count_TX_OK = 0U;
28207 DIAG_CAN2_Count_Stuff_Errors = 0U;
28208 DIAG_CAN2_Count_Format_Errors = 0U;
28209 DIAG_CAN2_Count_Ack_Errors = 0U;
28210 DIAG_CAN2_Count_Bit0_Errors = 0U;
28211 DIAG_CAN2_Count_Bit1_Errors = 0U;
28212 DIAG_CAN2_Count_CRC_Errors = 0U;
28213 DIAG_CAN2_Count_RX_Lost = 0U;
28214 DIAG_CAN2_Count_RX_OK = 0U;
28215 DIAG_CAN2_Count_TX_OK = 0U;
28216 REAX_Handwheel_Torque = 0.0F;
28217 REAX_Handwheel_Velocity = 0.0F;
28218 REAX_Pull_Compensation = 0.0F;
28219 DIAG_CAN1_Status = ENUM_CAN_STATUS_DIAG_T_ACTIVE;
28220 DIAG_CAN5_Status = ENUM_CAN_STATUS_DIAG_T_ACTIVE;
28221 DIAG_CAN6_Status = ENUM_CAN_STATUS_DIAG_T_ACTIVE;
28222 DIAG_CAN3_Status = ENUM_CAN_STATUS_DIAG_T_ACTIVE;
28223 DIAG_CAN4_Status = ENUM_CAN_STATUS_DIAG_T_ACTIVE;
28224 DIAG_CAN2_Status = ENUM_CAN_STATUS_DIAG_T_ACTIVE;
28225 SupervisorMode = 0U;
28226 REAX_Current_Mode = 0U;
28227 REAX_Req_Mode = 0U;
28228 REAX_Status = 0U;
28229
28230 {
28231 int32_T i;
28232 for (i = 0; i < 100; i++) {
28233 GLB_SWVERSION_CPV_[i] = ((uint8_T)0U);
28234 }
28235 }
28236
28237 MABX_Mode = 0U;
28238 EStop = false;
28239 EnableSw = false;
28240 RTMapsOk = false;
28241 EngagePB = false;
28242 AutonomousEnabled = false;
28243 AutonomousOutputEnabled = false;
28244 RateLimiterActive = false;
28245 Pedal_pwm_position = 0.0;
28246
28247 /* states (dwork) */
28248 (void) memset((void *)&L4_MABX_DW, 0,
28249 sizeof(DW_L4_MABX_T));
28250
28251 /* child S-Function registration */
28252 {
28253 RTWSfcnInfo *sfcnInfo = &L4_MABX_M->NonInlinedSFcns.sfcnInfo;
28254 L4_MABX_M->sfcnInfo = (sfcnInfo);
28255 rtssSetErrorStatusPtr(sfcnInfo, (&rtmGetErrorStatus(L4_MABX_M)));
28256 rtssSetNumRootSampTimesPtr(sfcnInfo, &L4_MABX_M->Sizes.numSampTimes);
28257 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[0] = &(rtmGetTPtr(L4_MABX_M)[0]);
28258 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[1] = &(rtmGetTPtr(L4_MABX_M)[1]);
28259 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[2] = &(rtmGetTPtr(L4_MABX_M)[2]);
28260 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[3] = &(rtmGetTPtr(L4_MABX_M)[3]);
28261 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[4] = &(rtmGetTPtr(L4_MABX_M)[4]);
28262 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[5] = &(rtmGetTPtr(L4_MABX_M)[5]);
28263 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[6] = &(rtmGetTPtr(L4_MABX_M)[6]);
28264 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[7] = &(rtmGetTPtr(L4_MABX_M)[7]);
28265 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[8] = &(rtmGetTPtr(L4_MABX_M)[8]);
28266 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[9] = &(rtmGetTPtr(L4_MABX_M)[9]);
28267 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[10] = &(rtmGetTPtr(L4_MABX_M)[10]);
28268 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[11] = &(rtmGetTPtr(L4_MABX_M)[11]);
28269 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[12] = &(rtmGetTPtr(L4_MABX_M)[12]);
28270 rtssSetTPtrPtr(sfcnInfo,L4_MABX_M->NonInlinedSFcns.taskTimePtrs);
28271 rtssSetTStartPtr(sfcnInfo, &rtmGetTStart(L4_MABX_M));
28272 rtssSetTFinalPtr(sfcnInfo, &rtmGetTFinal(L4_MABX_M));
28273 rtssSetTimeOfLastOutputPtr(sfcnInfo, &rtmGetTimeOfLastOutput(L4_MABX_M));
28274 rtssSetStepSizePtr(sfcnInfo, &L4_MABX_M->Timing.stepSize);
28275 rtssSetStopRequestedPtr(sfcnInfo, &rtmGetStopRequested(L4_MABX_M));
28276 rtssSetDerivCacheNeedsResetPtr(sfcnInfo, &L4_MABX_M->derivCacheNeedsReset);
28277 rtssSetZCCacheNeedsResetPtr(sfcnInfo, &L4_MABX_M->zCCacheNeedsReset);
28278 rtssSetContTimeOutputInconsistentWithStateAtMajorStepPtr(sfcnInfo,
28279 &L4_MABX_M->CTOutputIncnstWithState);
28280 rtssSetSampleHitsPtr(sfcnInfo, &L4_MABX_M->Timing.sampleHits);
28281 rtssSetPerTaskSampleHitsPtr(sfcnInfo, &L4_MABX_M->Timing.perTaskSampleHits);
28282 rtssSetSimModePtr(sfcnInfo, &L4_MABX_M->simMode);
28283 rtssSetSolverInfoPtr(sfcnInfo, &L4_MABX_M->solverInfoPtr);
28284 }
28285
28286 L4_MABX_M->Sizes.numSFcns = (5);
28287
28288 /* register each child */
28289 {
28290 (void) memset((void *)&L4_MABX_M->NonInlinedSFcns.childSFunctions[0], 0,
28291 5*sizeof(SimStruct));
28292 L4_MABX_M->childSfunctions = (&L4_MABX_M->
28293 NonInlinedSFcns.childSFunctionPtrs[0]);
28294
28295 {
28296 int_T i;
28297 for (i = 0; i < 5; i++) {
28298 L4_MABX_M->childSfunctions[i] =
28299 (&L4_MABX_M->NonInlinedSFcns.childSFunctions[i]);
28300 }
28301 }
28302
28303 /* Level2 S-Function Block: L4_MABX/<S395>/dsa_tcpip_bkg_sfcn (dsa_tcpip_bkg_sfcn) */
28304 {
28305 SimStruct *rts = L4_MABX_M->childSfunctions[0];
28306
28307 /* timing info */
28308 time_T *sfcnPeriod = L4_MABX_M->NonInlinedSFcns.Sfcn0.sfcnPeriod;
28309 time_T *sfcnOffset = L4_MABX_M->NonInlinedSFcns.Sfcn0.sfcnOffset;
28310 int_T *sfcnTsMap = L4_MABX_M->NonInlinedSFcns.Sfcn0.sfcnTsMap;
28311 (void) memset((void*)sfcnPeriod, 0,
28312 sizeof(time_T)*1);
28313 (void) memset((void*)sfcnOffset, 0,
28314 sizeof(time_T)*1);
28315 ssSetSampleTimePtr(rts, &sfcnPeriod[0]);
28316 ssSetOffsetTimePtr(rts, &sfcnOffset[0]);
28317 ssSetSampleTimeTaskIDPtr(rts, sfcnTsMap);
28318
28319 {
28320 ssSetBlkInfo2Ptr(rts, &L4_MABX_M->NonInlinedSFcns.blkInfo2[0]);
28321 }
28322
28323 _ssSetBlkInfo2PortInfo2Ptr(rts,
28324 &L4_MABX_M->NonInlinedSFcns.inputOutputPortInfo2[0]);
28325
28326 /* Set up the mdlInfo pointer */
28327 ssSetRTWSfcnInfo(rts, L4_MABX_M->sfcnInfo);
28328
28329 /* Allocate memory of model methods 2 */
28330 {
28331 ssSetModelMethods2(rts, &L4_MABX_M->NonInlinedSFcns.methods2[0]);
28332 }
28333
28334 /* Allocate memory of model methods 3 */
28335 {
28336 ssSetModelMethods3(rts, &L4_MABX_M->NonInlinedSFcns.methods3[0]);
28337 }
28338
28339 /* Allocate memory of model methods 4 */
28340 {
28341 ssSetModelMethods4(rts, &L4_MABX_M->NonInlinedSFcns.methods4[0]);
28342 }
28343
28344 /* Allocate memory for states auxilliary information */
28345 {
28346 ssSetStatesInfo2(rts, &L4_MABX_M->NonInlinedSFcns.statesInfo2[0]);
28347 ssSetPeriodicStatesInfo(rts,
28348 &L4_MABX_M->NonInlinedSFcns.periodicStatesInfo[0]);
28349 }
28350
28351 /* path info */
28352 ssSetModelName(rts, "dsa_tcpip_bkg_sfcn");
28353 ssSetPath(rts,
28354 "L4_MABX/ETHERNET/TCPIP_Setup/Background_Task/dsa_tcpip_bkg_sfcn");
28355 ssSetRTModel(rts,L4_MABX_M);
28356 ssSetParentSS(rts, (NULL));
28357 ssSetRootSS(rts, rts);
28358 ssSetVersion(rts, SIMSTRUCT_VERSION_LEVEL2);
28359
28360 /* work vectors */
28361 ssSetIWork(rts, (int_T *) &L4_MABX_DW.dsa_tcpip_bkg_sfcn_IWORK);
28362
28363 {
28364 struct _ssDWorkRecord *dWorkRecord = (struct _ssDWorkRecord *)
28365 &L4_MABX_M->NonInlinedSFcns.Sfcn0.dWork;
28366 struct _ssDWorkAuxRecord *dWorkAuxRecord = (struct _ssDWorkAuxRecord *)
28367 &L4_MABX_M->NonInlinedSFcns.Sfcn0.dWorkAux;
28368 ssSetSFcnDWork(rts, dWorkRecord);
28369 ssSetSFcnDWorkAux(rts, dWorkAuxRecord);
28370 _ssSetNumDWork(rts, 1);
28371
28372 /* IWORK */
28373 ssSetDWorkWidth(rts, 0, 1);
28374 ssSetDWorkDataType(rts, 0,SS_INTEGER);
28375 ssSetDWorkComplexSignal(rts, 0, 0);
28376 ssSetDWork(rts, 0, &L4_MABX_DW.dsa_tcpip_bkg_sfcn_IWORK);
28377 }
28378
28379 /* registration */
28380 dsa_tcpip_bkg_sfcn(rts);
28381 sfcnInitializeSizes(rts);
28382 sfcnInitializeSampleTimes(rts);
28383
28384 /* adjust sample time */
28385 ssSetSampleTime(rts, 0, -1.0);
28386 ssSetOffsetTime(rts, 0, -2.0);
28387 sfcnTsMap[0] = 9;
28388
28389 /* set compiled values of dynamic vector attributes */
28390 ssSetNumNonsampledZCs(rts, 0);
28391
28392 /* Update connectivity flags for each port */
28393 /* Update the BufferDstPort flags for each input port */
28394 }
28395
28396 /* Level2 S-Function Block: L4_MABX/<S396>/dsa_tcpip_irq_l2_sfcn (dsa_tcpip_irq_l2_sfcn) */
28397 {
28398 SimStruct *rts = L4_MABX_M->childSfunctions[1];
28399
28400 /* timing info */
28401 time_T *sfcnPeriod = L4_MABX_M->NonInlinedSFcns.Sfcn1.sfcnPeriod;
28402 time_T *sfcnOffset = L4_MABX_M->NonInlinedSFcns.Sfcn1.sfcnOffset;
28403 int_T *sfcnTsMap = L4_MABX_M->NonInlinedSFcns.Sfcn1.sfcnTsMap;
28404 (void) memset((void*)sfcnPeriod, 0,
28405 sizeof(time_T)*1);
28406 (void) memset((void*)sfcnOffset, 0,
28407 sizeof(time_T)*1);
28408 ssSetSampleTimePtr(rts, &sfcnPeriod[0]);
28409 ssSetOffsetTimePtr(rts, &sfcnOffset[0]);
28410 ssSetSampleTimeTaskIDPtr(rts, sfcnTsMap);
28411
28412 {
28413 ssSetBlkInfo2Ptr(rts, &L4_MABX_M->NonInlinedSFcns.blkInfo2[1]);
28414 }
28415
28416 _ssSetBlkInfo2PortInfo2Ptr(rts,
28417 &L4_MABX_M->NonInlinedSFcns.inputOutputPortInfo2[1]);
28418
28419 /* Set up the mdlInfo pointer */
28420 ssSetRTWSfcnInfo(rts, L4_MABX_M->sfcnInfo);
28421
28422 /* Allocate memory of model methods 2 */
28423 {
28424 ssSetModelMethods2(rts, &L4_MABX_M->NonInlinedSFcns.methods2[1]);
28425 }
28426
28427 /* Allocate memory of model methods 3 */
28428 {
28429 ssSetModelMethods3(rts, &L4_MABX_M->NonInlinedSFcns.methods3[1]);
28430 }
28431
28432 /* Allocate memory of model methods 4 */
28433 {
28434 ssSetModelMethods4(rts, &L4_MABX_M->NonInlinedSFcns.methods4[1]);
28435 }
28436
28437 /* Allocate memory for states auxilliary information */
28438 {
28439 ssSetStatesInfo2(rts, &L4_MABX_M->NonInlinedSFcns.statesInfo2[1]);
28440 ssSetPeriodicStatesInfo(rts,
28441 &L4_MABX_M->NonInlinedSFcns.periodicStatesInfo[1]);
28442 }
28443
28444 /* path info */
28445 ssSetModelName(rts, "dsa_tcpip_irq_l2_sfcn");
28446 ssSetPath(rts,
28447 "L4_MABX/ETHERNET/TCPIP_Setup/IRQ_Level_2_SW_INT/dsa_tcpip_irq_l2_sfcn");
28448 ssSetRTModel(rts,L4_MABX_M);
28449 ssSetParentSS(rts, (NULL));
28450 ssSetRootSS(rts, rts);
28451 ssSetVersion(rts, SIMSTRUCT_VERSION_LEVEL2);
28452
28453 /* registration */
28454 dsa_tcpip_irq_l2_sfcn(rts);
28455 sfcnInitializeSizes(rts);
28456 sfcnInitializeSampleTimes(rts);
28457
28458 /* adjust sample time */
28459 ssSetSampleTime(rts, 0, -1.0);
28460 ssSetOffsetTime(rts, 0, -3.0);
28461 sfcnTsMap[0] = 10;
28462
28463 /* set compiled values of dynamic vector attributes */
28464 ssSetNumNonsampledZCs(rts, 0);
28465
28466 /* Update connectivity flags for each port */
28467 /* Update the BufferDstPort flags for each input port */
28468 }
28469
28470 /* Level2 S-Function Block: L4_MABX/<S397>/dsa_tcpip_irq_l1_sfcn (dsa_tcpip_irq_l1_sfcn) */
28471 {
28472 SimStruct *rts = L4_MABX_M->childSfunctions[2];
28473
28474 /* timing info */
28475 time_T *sfcnPeriod = L4_MABX_M->NonInlinedSFcns.Sfcn2.sfcnPeriod;
28476 time_T *sfcnOffset = L4_MABX_M->NonInlinedSFcns.Sfcn2.sfcnOffset;
28477 int_T *sfcnTsMap = L4_MABX_M->NonInlinedSFcns.Sfcn2.sfcnTsMap;
28478 (void) memset((void*)sfcnPeriod, 0,
28479 sizeof(time_T)*1);
28480 (void) memset((void*)sfcnOffset, 0,
28481 sizeof(time_T)*1);
28482 ssSetSampleTimePtr(rts, &sfcnPeriod[0]);
28483 ssSetOffsetTimePtr(rts, &sfcnOffset[0]);
28484 ssSetSampleTimeTaskIDPtr(rts, sfcnTsMap);
28485
28486 {
28487 ssSetBlkInfo2Ptr(rts, &L4_MABX_M->NonInlinedSFcns.blkInfo2[2]);
28488 }
28489
28490 _ssSetBlkInfo2PortInfo2Ptr(rts,
28491 &L4_MABX_M->NonInlinedSFcns.inputOutputPortInfo2[2]);
28492
28493 /* Set up the mdlInfo pointer */
28494 ssSetRTWSfcnInfo(rts, L4_MABX_M->sfcnInfo);
28495
28496 /* Allocate memory of model methods 2 */
28497 {
28498 ssSetModelMethods2(rts, &L4_MABX_M->NonInlinedSFcns.methods2[2]);
28499 }
28500
28501 /* Allocate memory of model methods 3 */
28502 {
28503 ssSetModelMethods3(rts, &L4_MABX_M->NonInlinedSFcns.methods3[2]);
28504 }
28505
28506 /* Allocate memory of model methods 4 */
28507 {
28508 ssSetModelMethods4(rts, &L4_MABX_M->NonInlinedSFcns.methods4[2]);
28509 }
28510
28511 /* Allocate memory for states auxilliary information */
28512 {
28513 ssSetStatesInfo2(rts, &L4_MABX_M->NonInlinedSFcns.statesInfo2[2]);
28514 ssSetPeriodicStatesInfo(rts,
28515 &L4_MABX_M->NonInlinedSFcns.periodicStatesInfo[2]);
28516 }
28517
28518 /* outputs */
28519 {
28520 ssSetPortInfoForOutputs(rts,
28521 &L4_MABX_M->NonInlinedSFcns.Sfcn2.outputPortInfo[0]);
28522 _ssSetNumOutputPorts(rts, 1);
28523 _ssSetPortInfo2ForOutputUnits(rts,
28524 &L4_MABX_M->NonInlinedSFcns.Sfcn2.outputPortUnits[0]);
28525 ssSetOutputPortUnit(rts, 0, 0);
28526 _ssSetPortInfo2ForOutputCoSimAttribute(rts,
28527 &L4_MABX_M->NonInlinedSFcns.Sfcn2.outputPortCoSimAttribute[0]);
28528 ssSetOutputPortIsContinuousQuantity(rts, 0, 0);
28529
28530 /* port 0 */
28531 {
28532 _ssSetOutputPortNumDimensions(rts, 0, 1);
28533 ssSetOutputPortWidth(rts, 0, 1);
28534 ssSetOutputPortSignal(rts, 0, (NULL));
28535 }
28536 }
28537
28538 /* path info */
28539 ssSetModelName(rts, "dsa_tcpip_irq_l1_sfcn");
28540 ssSetPath(rts,
28541 "L4_MABX/ETHERNET/TCPIP_Setup/Interrupt_Task/dsa_tcpip_irq_l1_sfcn");
28542 ssSetRTModel(rts,L4_MABX_M);
28543 ssSetParentSS(rts, (NULL));
28544 ssSetRootSS(rts, rts);
28545 ssSetVersion(rts, SIMSTRUCT_VERSION_LEVEL2);
28546
28547 /* register function-calls */
28548 {
28549 int_T *callSysOutputs = (int_T *)
28550 &L4_MABX_M->NonInlinedSFcns.Sfcn2.callSysOutputs;
28551 void **callSysArgs1 = (void **)
28552 &L4_MABX_M->NonInlinedSFcns.Sfcn2.callSysArgs1;
28553 int_T *callSysArgs2 = (int_T *)
28554 &L4_MABX_M->NonInlinedSFcns.Sfcn2.callSysArgs2;
28555 SysOutputFcn *callSysFcns = (SysOutputFcn *)
28556 &L4_MABX_M->NonInlinedSFcns.Sfcn2.callSysFcns;
28557
28558 {
28559 int32_T i;
28560 for (i = 0; i < 1; i++) {
28561 callSysOutputs[i] = 0;
28562 callSysFcns[i] = (SysOutputFcn) (NULL);
28563 callSysFcns[1+i] = (SysOutputFcn) (NULL);
28564 callSysFcns[2*1+i] = (SysOutputFcn) (NULL);
28565 callSysFcns[3*1+i] = (SysOutputFcn) (NULL);
28566 }
28567 }
28568
28569 ssSetCallSystemOutputPtr(rts, &callSysOutputs[0]);
28570 ssSetCallSystemOutputArg1List(rts, &callSysArgs1[0]);
28571 ssSetCallSystemOutputArg2List(rts, &callSysArgs2[0]);
28572 ssSetCallSystemOutputFcnList(rts, &callSysFcns[0]);
28573 callSysArgs1[0] = (void *)L4_MABX_M;
28574 callSysArgs2[0] = 0;
28575 callSysFcns[0] = (SysOutputFcn) L4_MABX_TcpInputProcessingFNI;
28576 callSysFcns[1+0] = (SysOutputFcn) L4_TcpInputProcessing_ResetFNI;
28577 callSysFcns[2+0] = (SysOutputFcn) (NULL);
28578 callSysFcns[3+0] = (SysOutputFcn) (NULL);
28579 callSysOutputs[0] = 1;
28580 }
28581
28582 /* registration */
28583 dsa_tcpip_irq_l1_sfcn(rts);
28584 sfcnInitializeSizes(rts);
28585 sfcnInitializeSampleTimes(rts);
28586
28587 /* adjust sample time */
28588 ssSetSampleTime(rts, 0, -1.0);
28589 ssSetOffsetTime(rts, 0, -4.0);
28590 sfcnTsMap[0] = 11;
28591
28592 /* set compiled values of dynamic vector attributes */
28593 ssSetOutputPortWidth(rts, 0, 1);
28594 ssSetNumNonsampledZCs(rts, 0);
28595
28596 /* Update connectivity flags for each port */
28597 _ssSetOutputPortConnected(rts, 0, 1);
28598 _ssSetOutputPortBeingMerged(rts, 0, 0);
28599
28600 /* Update the BufferDstPort flags for each input port */
28601 }
28602
28603 /* Level2 S-Function Block: L4_MABX/<S386>/dsa_tcpip_setup (dsa_tcpip_setup_sfcn) */
28604 {
28605 SimStruct *rts = L4_MABX_M->childSfunctions[3];
28606
28607 /* timing info */
28608 time_T *sfcnPeriod = L4_MABX_M->NonInlinedSFcns.Sfcn3.sfcnPeriod;
28609 time_T *sfcnOffset = L4_MABX_M->NonInlinedSFcns.Sfcn3.sfcnOffset;
28610 int_T *sfcnTsMap = L4_MABX_M->NonInlinedSFcns.Sfcn3.sfcnTsMap;
28611 (void) memset((void*)sfcnPeriod, 0,
28612 sizeof(time_T)*1);
28613 (void) memset((void*)sfcnOffset, 0,
28614 sizeof(time_T)*1);
28615 ssSetSampleTimePtr(rts, &sfcnPeriod[0]);
28616 ssSetOffsetTimePtr(rts, &sfcnOffset[0]);
28617 ssSetSampleTimeTaskIDPtr(rts, sfcnTsMap);
28618
28619 {
28620 ssSetBlkInfo2Ptr(rts, &L4_MABX_M->NonInlinedSFcns.blkInfo2[3]);
28621 }
28622
28623 _ssSetBlkInfo2PortInfo2Ptr(rts,
28624 &L4_MABX_M->NonInlinedSFcns.inputOutputPortInfo2[3]);
28625
28626 /* Set up the mdlInfo pointer */
28627 ssSetRTWSfcnInfo(rts, L4_MABX_M->sfcnInfo);
28628
28629 /* Allocate memory of model methods 2 */
28630 {
28631 ssSetModelMethods2(rts, &L4_MABX_M->NonInlinedSFcns.methods2[3]);
28632 }
28633
28634 /* Allocate memory of model methods 3 */
28635 {
28636 ssSetModelMethods3(rts, &L4_MABX_M->NonInlinedSFcns.methods3[3]);
28637 }
28638
28639 /* Allocate memory of model methods 4 */
28640 {
28641 ssSetModelMethods4(rts, &L4_MABX_M->NonInlinedSFcns.methods4[3]);
28642 }
28643
28644 /* Allocate memory for states auxilliary information */
28645 {
28646 ssSetStatesInfo2(rts, &L4_MABX_M->NonInlinedSFcns.statesInfo2[3]);
28647 ssSetPeriodicStatesInfo(rts,
28648 &L4_MABX_M->NonInlinedSFcns.periodicStatesInfo[3]);
28649 }
28650
28651 /* outputs */
28652 {
28653 ssSetPortInfoForOutputs(rts,
28654 &L4_MABX_M->NonInlinedSFcns.Sfcn3.outputPortInfo[0]);
28655 _ssSetNumOutputPorts(rts, 1);
28656 _ssSetPortInfo2ForOutputUnits(rts,
28657 &L4_MABX_M->NonInlinedSFcns.Sfcn3.outputPortUnits[0]);
28658 ssSetOutputPortUnit(rts, 0, 0);
28659 _ssSetPortInfo2ForOutputCoSimAttribute(rts,
28660 &L4_MABX_M->NonInlinedSFcns.Sfcn3.outputPortCoSimAttribute[0]);
28661 ssSetOutputPortIsContinuousQuantity(rts, 0, 0);
28662
28663 /* port 0 */
28664 {
28665 _ssSetOutputPortNumDimensions(rts, 0, 1);
28666 ssSetOutputPortWidth(rts, 0, 1);
28667 ssSetOutputPortSignal(rts, 0, ((real_T *) &EthernetLinkStatus));
28668 }
28669 }
28670
28671 /* path info */
28672 ssSetModelName(rts, "dsa_tcpip_setup");
28673 ssSetPath(rts, "L4_MABX/ETHERNET/TCPIP_Setup/dsa_tcpip_setup");
28674 ssSetRTModel(rts,L4_MABX_M);
28675 ssSetParentSS(rts, (NULL));
28676 ssSetRootSS(rts, rts);
28677 ssSetVersion(rts, SIMSTRUCT_VERSION_LEVEL2);
28678
28679 /* parameters */
28680 {
28681 mxArray **sfcnParams = (mxArray **)
28682 &L4_MABX_M->NonInlinedSFcns.Sfcn3.params;
28683 ssSetSFcnParamsCount(rts, 6);
28684 ssSetSFcnParamsPtr(rts, &sfcnParams[0]);
28685 ssSetSFcnParam(rts, 0, (mxArray*)L4_MABX_P.dsa_tcpip_setup_P1_Size);
28686 ssSetSFcnParam(rts, 1, (mxArray*)L4_MABX_P.dsa_tcpip_setup_P2_Size);
28687 ssSetSFcnParam(rts, 2, (mxArray*)L4_MABX_P.dsa_tcpip_setup_P3_Size);
28688 ssSetSFcnParam(rts, 3, (mxArray*)L4_MABX_P.dsa_tcpip_setup_P4_Size);
28689 ssSetSFcnParam(rts, 4, (mxArray*)L4_MABX_P.dsa_tcpip_setup_P5_Size);
28690 ssSetSFcnParam(rts, 5, (mxArray*)L4_MABX_P.dsa_tcpip_setup_P6_Size);
28691 }
28692
28693 /* work vectors */
28694 ssSetIWork(rts, (int_T *) &L4_MABX_DW.dsa_tcpip_setup_IWORK);
28695 ssSetPWork(rts, (void **) &L4_MABX_DW.dsa_tcpip_setup_PWORK);
28696
28697 {
28698 struct _ssDWorkRecord *dWorkRecord = (struct _ssDWorkRecord *)
28699 &L4_MABX_M->NonInlinedSFcns.Sfcn3.dWork;
28700 struct _ssDWorkAuxRecord *dWorkAuxRecord = (struct _ssDWorkAuxRecord *)
28701 &L4_MABX_M->NonInlinedSFcns.Sfcn3.dWorkAux;
28702 ssSetSFcnDWork(rts, dWorkRecord);
28703 ssSetSFcnDWorkAux(rts, dWorkAuxRecord);
28704 _ssSetNumDWork(rts, 2);
28705
28706 /* IWORK */
28707 ssSetDWorkWidth(rts, 0, 1);
28708 ssSetDWorkDataType(rts, 0,SS_INTEGER);
28709 ssSetDWorkComplexSignal(rts, 0, 0);
28710 ssSetDWork(rts, 0, &L4_MABX_DW.dsa_tcpip_setup_IWORK);
28711
28712 /* PWORK */
28713 ssSetDWorkWidth(rts, 1, 1);
28714 ssSetDWorkDataType(rts, 1,SS_POINTER);
28715 ssSetDWorkComplexSignal(rts, 1, 0);
28716 ssSetDWork(rts, 1, &L4_MABX_DW.dsa_tcpip_setup_PWORK);
28717 }
28718
28719 /* registration */
28720 dsa_tcpip_setup_sfcn(rts);
28721 sfcnInitializeSizes(rts);
28722 sfcnInitializeSampleTimes(rts);
28723
28724 /* adjust sample time */
28725 ssSetSampleTime(rts, 0, 0.01);
28726 ssSetOffsetTime(rts, 0, 0.0);
28727 sfcnTsMap[0] = 0;
28728
28729 /* set compiled values of dynamic vector attributes */
28730 ssSetNumNonsampledZCs(rts, 0);
28731
28732 /* Update connectivity flags for each port */
28733 _ssSetOutputPortConnected(rts, 0, 1);
28734 _ssSetOutputPortBeingMerged(rts, 0, 0);
28735
28736 /* Update the BufferDstPort flags for each input port */
28737 }
28738
28739 /* Level2 S-Function Block: L4_MABX/<S387>/TCPIP_Com (dsa_tcpip_udp_sfcn) */
28740 {
28741 SimStruct *rts = L4_MABX_M->childSfunctions[4];
28742
28743 /* timing info */
28744 time_T *sfcnPeriod = L4_MABX_M->NonInlinedSFcns.Sfcn4.sfcnPeriod;
28745 time_T *sfcnOffset = L4_MABX_M->NonInlinedSFcns.Sfcn4.sfcnOffset;
28746 int_T *sfcnTsMap = L4_MABX_M->NonInlinedSFcns.Sfcn4.sfcnTsMap;
28747 (void) memset((void*)sfcnPeriod, 0,
28748 sizeof(time_T)*1);
28749 (void) memset((void*)sfcnOffset, 0,
28750 sizeof(time_T)*1);
28751 ssSetSampleTimePtr(rts, &sfcnPeriod[0]);
28752 ssSetOffsetTimePtr(rts, &sfcnOffset[0]);
28753 ssSetSampleTimeTaskIDPtr(rts, sfcnTsMap);
28754
28755 {
28756 ssSetBlkInfo2Ptr(rts, &L4_MABX_M->NonInlinedSFcns.blkInfo2[4]);
28757 }
28758
28759 _ssSetBlkInfo2PortInfo2Ptr(rts,
28760 &L4_MABX_M->NonInlinedSFcns.inputOutputPortInfo2[4]);
28761
28762 /* Set up the mdlInfo pointer */
28763 ssSetRTWSfcnInfo(rts, L4_MABX_M->sfcnInfo);
28764
28765 /* Allocate memory of model methods 2 */
28766 {
28767 ssSetModelMethods2(rts, &L4_MABX_M->NonInlinedSFcns.methods2[4]);
28768 }
28769
28770 /* Allocate memory of model methods 3 */
28771 {
28772 ssSetModelMethods3(rts, &L4_MABX_M->NonInlinedSFcns.methods3[4]);
28773 }
28774
28775 /* Allocate memory of model methods 4 */
28776 {
28777 ssSetModelMethods4(rts, &L4_MABX_M->NonInlinedSFcns.methods4[4]);
28778 }
28779
28780 /* Allocate memory for states auxilliary information */
28781 {
28782 ssSetStatesInfo2(rts, &L4_MABX_M->NonInlinedSFcns.statesInfo2[4]);
28783 ssSetPeriodicStatesInfo(rts,
28784 &L4_MABX_M->NonInlinedSFcns.periodicStatesInfo[4]);
28785 }
28786
28787 /* inputs */
28788 {
28789 _ssSetNumInputPorts(rts, 3);
28790 ssSetPortInfoForInputs(rts,
28791 &L4_MABX_M->NonInlinedSFcns.Sfcn4.inputPortInfo[0]);
28792 _ssSetPortInfo2ForInputUnits(rts,
28793 &L4_MABX_M->NonInlinedSFcns.Sfcn4.inputPortUnits[0]);
28794 ssSetInputPortUnit(rts, 0, 0);
28795 ssSetInputPortUnit(rts, 1, 0);
28796 ssSetInputPortUnit(rts, 2, 0);
28797 _ssSetPortInfo2ForInputCoSimAttribute(rts,
28798 &L4_MABX_M->NonInlinedSFcns.Sfcn4.inputPortCoSimAttribute[0]);
28799 ssSetInputPortIsContinuousQuantity(rts, 0, 0);
28800 ssSetInputPortIsContinuousQuantity(rts, 1, 0);
28801 ssSetInputPortIsContinuousQuantity(rts, 2, 0);
28802
28803 /* port 0 */
28804 {
28805 boolean_T const **sfcnUPtrs = (boolean_T const **)
28806 &L4_MABX_M->NonInlinedSFcns.Sfcn4.UPtrs0;
28807 sfcnUPtrs[0] = &L4_MABX_B.Enable;
28808 ssSetInputPortSignalPtrs(rts, 0, (InputPtrsType)&sfcnUPtrs[0]);
28809 _ssSetInputPortNumDimensions(rts, 0, 1);
28810 ssSetInputPortWidth(rts, 0, 1);
28811 }
28812
28813 /* port 1 */
28814 {
28815 uint32_T const **sfcnUPtrs = (uint32_T const **)
28816 &L4_MABX_M->NonInlinedSFcns.Sfcn4.UPtrs1;
28817 sfcnUPtrs[0] = &L4_MABX_B.Encoder_o2;
28818 ssSetInputPortSignalPtrs(rts, 1, (InputPtrsType)&sfcnUPtrs[0]);
28819 _ssSetInputPortNumDimensions(rts, 1, 1);
28820 ssSetInputPortWidth(rts, 1, 1);
28821 }
28822
28823 /* port 2 */
28824 {
28825 uint8_T const **sfcnUPtrs = (uint8_T const **)
28826 &L4_MABX_M->NonInlinedSFcns.Sfcn4.UPtrs2;
28827
28828 {
28829 int_T i1;
28830 const uint8_T *u2 = L4_MABX_B.Encoder_o1;
28831 for (i1=0; i1 < 22; i1++) {
28832 sfcnUPtrs[i1] = &u2[i1];
28833 }
28834 }
28835
28836 ssSetInputPortSignalPtrs(rts, 2, (InputPtrsType)&sfcnUPtrs[0]);
28837 _ssSetInputPortNumDimensions(rts, 2, 1);
28838 ssSetInputPortWidth(rts, 2, 22);
28839 }
28840 }
28841
28842 /* outputs */
28843 {
28844 ssSetPortInfoForOutputs(rts,
28845 &L4_MABX_M->NonInlinedSFcns.Sfcn4.outputPortInfo[0]);
28846 _ssSetNumOutputPorts(rts, 3);
28847 _ssSetPortInfo2ForOutputUnits(rts,
28848 &L4_MABX_M->NonInlinedSFcns.Sfcn4.outputPortUnits[0]);
28849 ssSetOutputPortUnit(rts, 0, 0);
28850 ssSetOutputPortUnit(rts, 1, 0);
28851 ssSetOutputPortUnit(rts, 2, 0);
28852 _ssSetPortInfo2ForOutputCoSimAttribute(rts,
28853 &L4_MABX_M->NonInlinedSFcns.Sfcn4.outputPortCoSimAttribute[0]);
28854 ssSetOutputPortIsContinuousQuantity(rts, 0, 0);
28855 ssSetOutputPortIsContinuousQuantity(rts, 1, 0);
28856 ssSetOutputPortIsContinuousQuantity(rts, 2, 0);
28857
28858 /* port 0 */
28859 {
28860 _ssSetOutputPortNumDimensions(rts, 0, 1);
28861 ssSetOutputPortWidth(rts, 0, 3);
28862 ssSetOutputPortSignal(rts, 0, ((uint32_T *) L4_MABX_B.TCPIP_Com_o1));
28863 }
28864
28865 /* port 1 */
28866 {
28867 _ssSetOutputPortNumDimensions(rts, 1, 1);
28868 ssSetOutputPortWidth(rts, 1, 1);
28869 ssSetOutputPortSignal(rts, 1, ((uint32_T *) &L4_MABX_B.TCPIP_Com_o2));
28870 }
28871
28872 /* port 2 */
28873 {
28874 _ssSetOutputPortNumDimensions(rts, 2, 1);
28875 ssSetOutputPortWidth(rts, 2, 128);
28876 ssSetOutputPortSignal(rts, 2, ((uint8_T *) L4_MABX_B.TCPIP_Com_o3));
28877 }
28878 }
28879
28880 /* path info */
28881 ssSetModelName(rts, "TCPIP_Com");
28882 ssSetPath(rts, "L4_MABX/ETHERNET/UDPIP_Communication/TCPIP_Com");
28883 ssSetRTModel(rts,L4_MABX_M);
28884 ssSetParentSS(rts, (NULL));
28885 ssSetRootSS(rts, rts);
28886 ssSetVersion(rts, SIMSTRUCT_VERSION_LEVEL2);
28887
28888 /* parameters */
28889 {
28890 mxArray **sfcnParams = (mxArray **)
28891 &L4_MABX_M->NonInlinedSFcns.Sfcn4.params;
28892 ssSetSFcnParamsCount(rts, 6);
28893 ssSetSFcnParamsPtr(rts, &sfcnParams[0]);
28894 ssSetSFcnParam(rts, 0, (mxArray*)L4_MABX_P.TCPIP_Com_P1_Size);
28895 ssSetSFcnParam(rts, 1, (mxArray*)L4_MABX_P.TCPIP_Com_P2_Size);
28896 ssSetSFcnParam(rts, 2, (mxArray*)L4_MABX_P.TCPIP_Com_P3_Size);
28897 ssSetSFcnParam(rts, 3, (mxArray*)L4_MABX_P.TCPIP_Com_P4_Size);
28898 ssSetSFcnParam(rts, 4, (mxArray*)L4_MABX_P.TCPIP_Com_P5_Size);
28899 ssSetSFcnParam(rts, 5, (mxArray*)L4_MABX_P.TCPIP_Com_P6_Size);
28900 }
28901
28902 /* work vectors */
28903 ssSetPWork(rts, (void **) &L4_MABX_DW.TCPIP_Com_PWORK);
28904
28905 {
28906 struct _ssDWorkRecord *dWorkRecord = (struct _ssDWorkRecord *)
28907 &L4_MABX_M->NonInlinedSFcns.Sfcn4.dWork;
28908 struct _ssDWorkAuxRecord *dWorkAuxRecord = (struct _ssDWorkAuxRecord *)
28909 &L4_MABX_M->NonInlinedSFcns.Sfcn4.dWorkAux;
28910 ssSetSFcnDWork(rts, dWorkRecord);
28911 ssSetSFcnDWorkAux(rts, dWorkAuxRecord);
28912 _ssSetNumDWork(rts, 1);
28913
28914 /* PWORK */
28915 ssSetDWorkWidth(rts, 0, 1);
28916 ssSetDWorkDataType(rts, 0,SS_POINTER);
28917 ssSetDWorkComplexSignal(rts, 0, 0);
28918 ssSetDWork(rts, 0, &L4_MABX_DW.TCPIP_Com_PWORK);
28919 }
28920
28921 /* registration */
28922 dsa_tcpip_udp_sfcn(rts);
28923 sfcnInitializeSizes(rts);
28924 sfcnInitializeSampleTimes(rts);
28925
28926 /* adjust sample time */
28927 ssSetSampleTime(rts, 0, 0.01);
28928 ssSetOffsetTime(rts, 0, 0.0);
28929 sfcnTsMap[0] = 0;
28930
28931 /* set compiled values of dynamic vector attributes */
28932 ssSetNumNonsampledZCs(rts, 0);
28933
28934 /* Update connectivity flags for each port */
28935 _ssSetInputPortConnected(rts, 0, 1);
28936 _ssSetInputPortConnected(rts, 1, 1);
28937 _ssSetInputPortConnected(rts, 2, 1);
28938 _ssSetOutputPortConnected(rts, 0, 1);
28939 _ssSetOutputPortConnected(rts, 1, 1);
28940 _ssSetOutputPortConnected(rts, 2, 1);
28941 _ssSetOutputPortBeingMerged(rts, 0, 0);
28942 _ssSetOutputPortBeingMerged(rts, 1, 0);
28943 _ssSetOutputPortBeingMerged(rts, 2, 0);
28944
28945 /* Update the BufferDstPort flags for each input port */
28946 ssSetInputPortBufferDstPort(rts, 0, -1);
28947 ssSetInputPortBufferDstPort(rts, 1, -1);
28948 ssSetInputPortBufferDstPort(rts, 2, -1);
28949 }
28950 }
28951
28952 {
28953 /* user code (registration function declaration) */
28954 /*Initialize global TRC pointers. */
28955 L4_MABX_rti_init_trc_pointers();
28956 }
28957
28958 /* Start for Enabled SubSystem: '<S726>/Slew_at_event' */
28959 L4_MABX_DW.Slew_at_event_MODE = false;
28960
28961 /* End of Start for SubSystem: '<S726>/Slew_at_event' */
28962
28963 /* Start for S-Function (dsa_tcpip_setup_sfcn): '<S386>/dsa_tcpip_setup' */
28964 /* Level2 S-Function Block: '<S386>/dsa_tcpip_setup' (dsa_tcpip_setup_sfcn) */
28965 {
28966 SimStruct *rts = L4_MABX_M->childSfunctions[3];
28967 sfcnStart(rts);
28968 if (ssGetErrorStatus(rts) != (NULL))
28969 return;
28970 }
28971
28972 /* Start for Constant: '<S3>/Enable' */
28973 L4_MABX_B.Enable = L4_MABX_P.Enable_Value;
28974
28975 /* Start for S-Function (dsa_gen_tx_RTMapsEncode_sfun): '<S393>/Encoder' */
28976 Init_Tx_RTMapsEncode();
28977
28978 /* Start for S-Function (dsa_tcpip_udp_sfcn): '<S387>/TCPIP_Com' */
28979 /* Level2 S-Function Block: '<S387>/TCPIP_Com' (dsa_tcpip_udp_sfcn) */
28980 {
28981 SimStruct *rts = L4_MABX_M->childSfunctions[4];
28982 sfcnStart(rts);
28983 if (ssGetErrorStatus(rts) != (NULL))
28984 return;
28985 }
28986
28987 /* Start for S-Function (dsa_gen_rx_RTMapsDecode_sfun): '<S390>/Decoder' */
28988 Init_Rx_RTMapsDecode();
28989
28990 /* Start for Atomic SubSystem: '<S65>/Task_10ms' */
28991 /* Start for RateTransition: '<S81>/TmpRTBAtSignal Conversion1Inport1' */
28992 L4_MABX_B.distanceSpdTarget_e = L4_MABX_P.TmpRTBAtSignalConversion1Inport;
28993
28994 /* Start for Enabled SubSystem: '<S79>/Throttle_controller_gov' */
28995 L4_MABX_DW.Throttle_controller_gov_MODE = false;
28996
28997 /* Start for Enabled SubSystem: '<S238>/Calculate_D_term' */
28998 L4_M_Calculate_D_term_Start(&L4_MABX_DW.Calculate_D_term_h);
28999
29000 /* End of Start for SubSystem: '<S238>/Calculate_D_term' */
29001
29002 /* Start for Enabled SubSystem: '<S238>/Calculate_I_term' */
29003 L4_M_Calculate_I_term_Start(&L4_MABX_DW.Calculate_I_term_n);
29004
29005 /* End of Start for SubSystem: '<S238>/Calculate_I_term' */
29006
29007 /* End of Start for SubSystem: '<S79>/Throttle_controller_gov' */
29008
29009 /* Start for Enabled SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' */
29010 L4_MABX_DW.Determine_shift_interlock_brake = false;
29011
29012 /* End of Start for SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' */
29013
29014 /* Start for Enabled SubSystem: '<S99>/Determine_brake_hold_pressure_target' */
29015 L4_MABX_DW.Determine_brake_hold_pressure_t = false;
29016
29017 /* End of Start for SubSystem: '<S99>/Determine_brake_hold_pressure_target' */
29018
29019 /* Start for Enabled SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' */
29020 L4_MABX_DW.Bendix_2C2_brake_application_pr = false;
29021
29022 /* Start for Enabled SubSystem: '<S106>/Calculate_D_term' */
29023 L4_M_Calculate_D_term_Start(&L4_MABX_DW.Calculate_D_term);
29024
29025 /* End of Start for SubSystem: '<S106>/Calculate_D_term' */
29026
29027 /* Start for Enabled SubSystem: '<S106>/Calculate_I_term' */
29028 L4_M_Calculate_I_term_Start(&L4_MABX_DW.Calculate_I_term);
29029
29030 /* End of Start for SubSystem: '<S106>/Calculate_I_term' */
29031
29032 /* End of Start for SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' */
29033
29034 /* Start for RateTransition: '<S81>/TmpRTBAtSignal Conversion3Inport1' */
29035 L4_MABX_B.pathSpdLimit_a = L4_MABX_P.TmpRTBAtSignalConversion3Inport;
29036
29037 /* Start for RateTransition: '<S81>/TmpRTBAtSignal Conversion2Inport1' */
29038 L4_MABX_B.distance_o = L4_MABX_P.TmpRTBAtSignalConversion2Inport;
29039
29040 /* Start for Enabled SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' */
29041 L4_MABX_DW.Bendix_2C2_vehicle_speed_feedba = false;
29042
29043 /* Start for Enabled SubSystem: '<S144>/Calculate_D_term' */
29044 L4_M_Calculate_D_term_Start(&L4_MABX_DW.Calculate_D_term_p);
29045
29046 /* End of Start for SubSystem: '<S144>/Calculate_D_term' */
29047
29048 /* Start for Enabled SubSystem: '<S144>/Calculate_I_term' */
29049 L4_M_Calculate_I_term_Start(&L4_MABX_DW.Calculate_I_term_e);
29050
29051 /* End of Start for SubSystem: '<S144>/Calculate_I_term' */
29052
29053 /* End of Start for SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' */
29054
29055 /* Start for Enabled SubSystem: '<S79>/Engine_speed_target' */
29056 L4_MABX_DW.Engine_speed_target_MODE = false;
29057
29058 /* End of Start for SubSystem: '<S79>/Engine_speed_target' */
29059
29060 /* Start for Enabled SubSystem: '<S276>/Slew_at_event' */
29061 L4_MABX_DW.Slew_at_event_MODE_d = false;
29062
29063 /* End of Start for SubSystem: '<S276>/Slew_at_event' */
29064
29065 /* Start for RateTransition: '<S80>/TmpRTBAtrad2deg1Inport1' */
29066 L4_MABX_B.previewSteeringAngle_b = L4_MABX_P.TmpRTBAtrad2deg1Inport1_Initial;
29067
29068 /* Start for RateTransition: '<S80>/TmpRTBAtsignCurveOffsetInport1' */
29069 L4_MABX_B.TmpRTBAtsignCurveOffsetInport1 =
29070 L4_MABX_P.TmpRTBAtsignCurveOffsetInport1_;
29071
29072 /* Start for RateTransition: '<S277>/TmpRTBAtAdd2Inport2' */
29073 L4_MABX_B.TmpRTBAtAdd2Inport2 = L4_MABX_P.TmpRTBAtAdd2Inport2_InitialCond;
29074
29075 /* End of Start for SubSystem: '<S65>/Task_10ms' */
29076
29077 /* Start for Atomic SubSystem: '<S815>/CAN_TX_10ms' */
29078
29079 /* Start for Width: '<S972>/Width' */
29080 L4_MABX_B.Width_c = 16U;
29081
29082 /* End of Start for SubSystem: '<S815>/CAN_TX_10ms' */
29083
29084 /* Start for Atomic SubSystem: '<S815>/CAN_TX_20ms' */
29085
29086 /* Start for Width: '<S1000>/Width' */
29087 L4_MABX_B.Width_f = 16U;
29088
29089 /* End of Start for SubSystem: '<S815>/CAN_TX_20ms' */
29090
29091 /* Start for Atomic SubSystem: '<S815>/CAN_TX_5000ms' */
29092
29093 /* Start for Width: '<S1015>/Width' */
29094 L4_MABX_B.Width = 8U;
29095
29096 /* End of Start for SubSystem: '<S815>/CAN_TX_5000ms' */
29097
29098 /* Start for RateTransition: '<S1044>/TmpRTBAtANDInport1' */
29099 L4_MABX_B.TmpRTBAtANDInport1 = L4_MABX_P.TmpRTBAtANDInport1_InitialCondi;
29100
29101 /* Start for Atomic SubSystem: '<S65>/Task_20ms' */
29102 /* Start for Constant: '<S383>/InitialHeading' */
29103 L4_MABX_B.InitialHeading = L4_MABX_P.InitialHeading_Value;
29104
29105 /* Start for Constant: '<S383>/InitialPosition' */
29106 L4_MABX_B.InitialPosition = L4_MABX_P.InitialPosition_Value;
29107
29108 /* Start for Constant: '<S383>/InitialXPosition' */
29109 L4_MABX_B.InitialXPosition = L4_MABX_P.InitialXPosition_Value;
29110
29111 /* Start for Constant: '<S383>/InitialYPosition' */
29112 L4_MABX_B.InitialYPosition = L4_MABX_P.InitialYPosition_Value;
29113
29114 /* End of Start for SubSystem: '<S65>/Task_20ms' */
29115
29116 /* Start for S-Function (rti_commonblock): '<S394>/S-Function1' incorporates:
29117 * SubSystem: '<S386>/Background_Task'
29118 */
29119 L4_MA_Background_Task_Start();
29120
29121 /* End of Start for S-Function (rti_commonblock): '<S394>/S-Function1' */
29122
29123 /* Start for S-Function (rti_commonblock): '<S400>/S-Function1' incorporates:
29124 * SubSystem: '<S386>/Interrupt_Task'
29125 */
29126 L4_MAB_Interrupt_Task_Start();
29127
29128 /* End of Start for S-Function (rti_commonblock): '<S400>/S-Function1' */
29129 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C1_Trig_ZCE = UNINITIALIZED_ZCSIG;
29130 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C2_Trig_ZCE = UNINITIALIZED_ZCSIG;
29131 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C1_Trig_ZCE = UNINITIALIZED_ZCSIG;
29132 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C2_Trig_ZCE = UNINITIALIZED_ZCSIG;
29133 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C1_Trig_ZCE = UNINITIALIZED_ZCSIG;
29134 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C2_Trig_ZCE = UNINITIALIZED_ZCSIG;
29135 L4_MABX_PrevZCX.CAN_TYPE1_TX_M1_C1_Trig_ZCE_p = POS_ZCSIG;
29136 L4_MABX_PrevZCX.CAN_TYPE1_TX_M1_C1_Trig_ZCE = POS_ZCSIG;
29137
29138 {
29139 int32_T i;
29140
29141 /* InitializeConditions for UnitDelay: '<S762>/FixPt Unit Delay2' */
29142 L4_MABX_DW.FixPtUnitDelay2_DSTATE =
29143 L4_MABX_P.FixPtUnitDelay2_InitialCondit_b;
29144
29145 /* InitializeConditions for UnitDelay: '<S762>/FixPt Unit Delay1' */
29146 L4_MABX_DW.FixPtUnitDelay1_DSTATE =
29147 L4_MABX_P.FixPtUnitDelay1_InitialCondi_l1;
29148
29149 /* InitializeConditions for UnitDelay: '<S754>/FixPt Unit Delay2' */
29150 L4_MABX_DW.FixPtUnitDelay2_DSTATE_n =
29151 L4_MABX_P.FixPtUnitDelay2_InitialCondit_l;
29152
29153 /* InitializeConditions for UnitDelay: '<S754>/FixPt Unit Delay1' */
29154 L4_MABX_DW.FixPtUnitDelay1_DSTATE_j =
29155 L4_MABX_P.FixPtUnitDelay1_InitialCondi_fe;
29156
29157 /* InitializeConditions for UnitDelay: '<S778>/FixPt Unit Delay2' */
29158 L4_MABX_DW.FixPtUnitDelay2_DSTATE_f =
29159 L4_MABX_P.FixPtUnitDelay2_InitialCondi_bw;
29160
29161 /* InitializeConditions for UnitDelay: '<S778>/FixPt Unit Delay1' */
29162 L4_MABX_DW.FixPtUnitDelay1_DSTATE_m =
29163 L4_MABX_P.FixPtUnitDelay1_InitialCondi_hv;
29164
29165 /* InitializeConditions for UnitDelay: '<S770>/FixPt Unit Delay2' */
29166 L4_MABX_DW.FixPtUnitDelay2_DSTATE_e =
29167 L4_MABX_P.FixPtUnitDelay2_InitialCondi_ig;
29168
29169 /* InitializeConditions for UnitDelay: '<S770>/FixPt Unit Delay1' */
29170 L4_MABX_DW.FixPtUnitDelay1_DSTATE_mk =
29171 L4_MABX_P.FixPtUnitDelay1_InitialCondit_k;
29172
29173 /* InitializeConditions for UnitDelay: '<S732>/Unit_Delay' */
29174 L4_MABX_DW.Unit_Delay_DSTATE_ot = L4_MABX_P.Unit_Delay_InitialCondition_kp;
29175
29176 /* InitializeConditions for UnitDelay: '<S799>/Unit_Delay1' */
29177 L4_MABX_DW.Unit_Delay1_DSTATE = L4_MABX_P.Unit_Delay1_InitialCondition_g;
29178
29179 /* InitializeConditions for UnitDelay: '<S799>/Unit_Delay2' */
29180 L4_MABX_DW.Unit_Delay2_DSTATE = L4_MABX_P.Unit_Delay2_InitialCondition_jm;
29181
29182 /* InitializeConditions for UnitDelay: '<S732>/Unit_Delay1' */
29183 L4_MABX_DW.Unit_Delay1_DSTATE_n = L4_MABX_P.Unit_Delay1_InitialCondition_ml;
29184
29185 /* InitializeConditions for UnitDelay: '<S800>/Unit_Delay1' */
29186 L4_MABX_DW.Unit_Delay1_DSTATE_m = L4_MABX_P.Unit_Delay1_InitialCondition_d;
29187
29188 /* InitializeConditions for UnitDelay: '<S800>/Unit_Delay2' */
29189 L4_MABX_DW.Unit_Delay2_DSTATE_f = L4_MABX_P.Unit_Delay2_InitialCondition_jv;
29190
29191 /* InitializeConditions for UnitDelay: '<S798>/FixPt Unit Delay2' */
29192 L4_MABX_DW.FixPtUnitDelay2_DSTATE_h =
29193 L4_MABX_P.FixPtUnitDelay2_InitialCondi_ct;
29194
29195 /* InitializeConditions for UnitDelay: '<S798>/FixPt Unit Delay1' */
29196 L4_MABX_DW.FixPtUnitDelay1_DSTATE_d =
29197 L4_MABX_P.FixPtUnitDelay1_InitialCondi_mw;
29198
29199 /* InitializeConditions for UnitDelay: '<S797>/FixPt Unit Delay2' */
29200 L4_MABX_DW.FixPtUnitDelay2_DSTATE_i =
29201 L4_MABX_P.FixPtUnitDelay2_InitialCondi_em;
29202
29203 /* InitializeConditions for UnitDelay: '<S797>/FixPt Unit Delay1' */
29204 L4_MABX_DW.FixPtUnitDelay1_DSTATE_a =
29205 L4_MABX_P.FixPtUnitDelay1_InitialCondi_ln;
29206
29207 /* InitializeConditions for UnitDelay: '<S786>/FixPt Unit Delay2' */
29208 L4_MABX_DW.FixPtUnitDelay2_DSTATE_l =
29209 L4_MABX_P.FixPtUnitDelay2_InitialCondit_d;
29210
29211 /* InitializeConditions for UnitDelay: '<S786>/FixPt Unit Delay1' */
29212 L4_MABX_DW.FixPtUnitDelay1_DSTATE_e =
29213 L4_MABX_P.FixPtUnitDelay1_InitialCondi_p3;
29214
29215 /* InitializeConditions for RateTransition: '<S403>/Rate Transition' */
29216 L4_MABX_DW.RateTransition_Buffer0 =
29217 L4_MABX_P.RateTransition_InitialCondition;
29218 L4_MABX_DW.RateTransition_write_buf = -1;
29219 L4_MABX_DW.RateTransition_read_buf = -1;
29220
29221 /* InitializeConditions for UnitDelay: '<S635>/Unit_Delay3' */
29222 L4_MABX_DW.Unit_Delay3_DSTATE = L4_MABX_P.Unit_Delay3_InitialCondition;
29223
29224 /* InitializeConditions for UnitDelay: '<S635>/Unit_Delay' */
29225 L4_MABX_DW.Unit_Delay_DSTATE_bo = L4_MABX_P.Unit_Delay_InitialCondition_ipw;
29226
29227 /* InitializeConditions for UnitDelay: '<S641>/Unit_Delay' */
29228 L4_MABX_DW.Unit_Delay_DSTATE_cv = L4_MABX_P.Unit_Delay_InitialCondition_c4;
29229
29230 /* InitializeConditions for S-Function (dsa_tcpip_setup_sfcn): '<S386>/dsa_tcpip_setup' */
29231 /* Level2 S-Function Block: '<S386>/dsa_tcpip_setup' (dsa_tcpip_setup_sfcn) */
29232 {
29233 SimStruct *rts = L4_MABX_M->childSfunctions[3];
29234 sfcnInitializeConditions(rts);
29235 if (ssGetErrorStatus(rts) != (NULL))
29236 return;
29237 }
29238
29239 /* InitializeConditions for DiscretePulseGenerator: '<S385>/Heartbeat' */
29240 L4_MABX_DW.clockTickCounter = 0;
29241
29242 /* InitializeConditions for UnitDelay: '<S3>/Unit_Delay' */
29243 L4_MABX_DW.Unit_Delay_79_DSTATE = L4_MABX_P.Unit_Delay_79_InitialCondition;
29244 L4_MABX_DW.Unit_Delay_80_DSTATE = L4_MABX_P.Unit_Delay_80_InitialCondition;
29245 L4_MABX_DW.Unit_Delay_81_DSTATE = L4_MABX_P.Unit_Delay_81_InitialCondition;
29246 L4_MABX_DW.Unit_Delay_45_DSTATE = L4_MABX_P.Unit_Delay_45_InitialCondition;
29247 L4_MABX_DW.Unit_Delay_47_DSTATE = L4_MABX_P.Unit_Delay_47_InitialCondition;
29248
29249 /* InitializeConditions for S-Function (dsa_tcpip_udp_sfcn): '<S387>/TCPIP_Com' */
29250 /* Level2 S-Function Block: '<S387>/TCPIP_Com' (dsa_tcpip_udp_sfcn) */
29251 {
29252 SimStruct *rts = L4_MABX_M->childSfunctions[4];
29253 sfcnInitializeConditions(rts);
29254 if (ssGetErrorStatus(rts) != (NULL))
29255 return;
29256 }
29257
29258 /* InitializeConditions for UnitDelay: '<S391>/Delay Input1' */
29259 L4_MABX_DW.DelayInput1_DSTATE_p = L4_MABX_P.DetectRisePositive1_vinit;
29260
29261 /* InitializeConditions for UnitDelay: '<S389>/Unit Delay' */
29262 L4_MABX_DW.UnitDelay_DSTATE = L4_MABX_P.UnitDelay_InitialCondition_h;
29263
29264 /* InitializeConditions for UnitDelay: '<S825>/Unit Delay2' */
29265 L4_MABX_DW.UnitDelay2_DSTATE = L4_MABX_P.UnitDelay2_InitialCondition;
29266
29267 /* InitializeConditions for UnitDelay: '<S825>/Unit Delay1' */
29268 L4_MABX_DW.UnitDelay1_DSTATE_e = L4_MABX_P.UnitDelay1_InitialCondition_i;
29269
29270 /* InitializeConditions for UnitDelay: '<S825>/Unit Delay3' */
29271 L4_MABX_DW.UnitDelay3_DSTATE = L4_MABX_P.UnitDelay3_InitialCondition;
29272
29273 /* InitializeConditions for RateTransition: '<S1044>/TmpRTBAtANDInport1' */
29274 L4_MABX_DW.TmpRTBAtANDInport1_Buffer0 =
29275 L4_MABX_P.TmpRTBAtANDInport1_InitialCondi;
29276
29277 /* InitializeConditions for DiscretePulseGenerator: '<S1044>/Flash' */
29278 L4_MABX_DW.clockTickCounter_c = 0;
29279
29280 /* InitializeConditions for UnitDelay: '<S3>/Unit_Delay' */
29281 L4_MABX_DW.Unit_Delay_1_DSTATE = L4_MABX_P.Unit_Delay_1_InitialCondition_p;
29282 L4_MABX_DW.Unit_Delay_10_DSTATE = L4_MABX_P.Unit_Delay_10_InitialCondition;
29283 L4_MABX_DW.Unit_Delay_100_DSTATE = L4_MABX_P.Unit_Delay_100_InitialCondition;
29284 L4_MABX_DW.Unit_Delay_101_DSTATE = L4_MABX_P.Unit_Delay_101_InitialCondition;
29285 L4_MABX_DW.Unit_Delay_102_DSTATE = L4_MABX_P.Unit_Delay_102_InitialCondition;
29286 L4_MABX_DW.Unit_Delay_103_DSTATE = L4_MABX_P.Unit_Delay_103_InitialCondition;
29287 L4_MABX_DW.Unit_Delay_104_DSTATE = L4_MABX_P.Unit_Delay_104_InitialCondition;
29288 L4_MABX_DW.Unit_Delay_105_DSTATE = L4_MABX_P.Unit_Delay_105_InitialCondition;
29289 L4_MABX_DW.Unit_Delay_106_DSTATE = L4_MABX_P.Unit_Delay_106_InitialCondition;
29290 L4_MABX_DW.Unit_Delay_107_DSTATE = L4_MABX_P.Unit_Delay_107_InitialCondition;
29291 L4_MABX_DW.Unit_Delay_108_DSTATE = L4_MABX_P.Unit_Delay_108_InitialCondition;
29292 L4_MABX_DW.Unit_Delay_109_DSTATE = L4_MABX_P.Unit_Delay_109_InitialCondition;
29293 L4_MABX_DW.Unit_Delay_11_DSTATE = L4_MABX_P.Unit_Delay_11_InitialCondition;
29294 L4_MABX_DW.Unit_Delay_110_DSTATE = L4_MABX_P.Unit_Delay_110_InitialCondition;
29295 L4_MABX_DW.Unit_Delay_111_DSTATE = L4_MABX_P.Unit_Delay_111_InitialCondition;
29296 L4_MABX_DW.Unit_Delay_112_DSTATE = L4_MABX_P.Unit_Delay_112_InitialCondition;
29297 L4_MABX_DW.Unit_Delay_113_DSTATE = L4_MABX_P.Unit_Delay_113_InitialCondition;
29298 L4_MABX_DW.Unit_Delay_114_DSTATE = L4_MABX_P.Unit_Delay_114_InitialCondition;
29299 L4_MABX_DW.Unit_Delay_115_DSTATE = L4_MABX_P.Unit_Delay_115_InitialCondition;
29300 L4_MABX_DW.Unit_Delay_116_DSTATE = L4_MABX_P.Unit_Delay_116_InitialCondition;
29301 L4_MABX_DW.Unit_Delay_117_DSTATE = L4_MABX_P.Unit_Delay_117_InitialCondition;
29302 L4_MABX_DW.Unit_Delay_118_DSTATE = L4_MABX_P.Unit_Delay_118_InitialCondition;
29303 L4_MABX_DW.Unit_Delay_119_DSTATE = L4_MABX_P.Unit_Delay_119_InitialCondition;
29304 L4_MABX_DW.Unit_Delay_12_DSTATE = L4_MABX_P.Unit_Delay_12_InitialCondition;
29305 L4_MABX_DW.Unit_Delay_120_DSTATE = L4_MABX_P.Unit_Delay_120_InitialCondition;
29306 L4_MABX_DW.Unit_Delay_121_DSTATE = L4_MABX_P.Unit_Delay_121_InitialCondition;
29307 L4_MABX_DW.Unit_Delay_122_DSTATE = L4_MABX_P.Unit_Delay_122_InitialCondition;
29308 L4_MABX_DW.Unit_Delay_123_DSTATE = L4_MABX_P.Unit_Delay_123_InitialCondition;
29309 L4_MABX_DW.Unit_Delay_124_DSTATE = L4_MABX_P.Unit_Delay_124_InitialCondition;
29310 L4_MABX_DW.Unit_Delay_125_DSTATE = L4_MABX_P.Unit_Delay_125_InitialCondition;
29311 L4_MABX_DW.Unit_Delay_126_DSTATE = L4_MABX_P.Unit_Delay_126_InitialCondition;
29312 L4_MABX_DW.Unit_Delay_127_DSTATE = L4_MABX_P.Unit_Delay_127_InitialCondition;
29313 L4_MABX_DW.Unit_Delay_128_DSTATE = L4_MABX_P.Unit_Delay_128_InitialCondition;
29314 L4_MABX_DW.Unit_Delay_129_DSTATE = L4_MABX_P.Unit_Delay_129_InitialCondition;
29315 L4_MABX_DW.Unit_Delay_13_DSTATE = L4_MABX_P.Unit_Delay_13_InitialCondition;
29316 L4_MABX_DW.Unit_Delay_130_DSTATE = L4_MABX_P.Unit_Delay_130_InitialCondition;
29317 L4_MABX_DW.Unit_Delay_131_DSTATE = L4_MABX_P.Unit_Delay_131_InitialCondition;
29318 L4_MABX_DW.Unit_Delay_132_DSTATE = L4_MABX_P.Unit_Delay_132_InitialCondition;
29319 L4_MABX_DW.Unit_Delay_133_DSTATE = L4_MABX_P.Unit_Delay_133_InitialCondition;
29320 L4_MABX_DW.Unit_Delay_134_DSTATE = L4_MABX_P.Unit_Delay_134_InitialCondition;
29321 L4_MABX_DW.Unit_Delay_135_DSTATE = L4_MABX_P.Unit_Delay_135_InitialCondition;
29322 L4_MABX_DW.Unit_Delay_136_DSTATE = L4_MABX_P.Unit_Delay_136_InitialCondition;
29323 L4_MABX_DW.Unit_Delay_137_DSTATE = L4_MABX_P.Unit_Delay_137_InitialCondition;
29324 L4_MABX_DW.Unit_Delay_138_DSTATE = L4_MABX_P.Unit_Delay_138_InitialCondition;
29325 L4_MABX_DW.Unit_Delay_139_DSTATE = L4_MABX_P.Unit_Delay_139_InitialCondition;
29326 L4_MABX_DW.Unit_Delay_14_DSTATE = L4_MABX_P.Unit_Delay_14_InitialCondition;
29327 L4_MABX_DW.Unit_Delay_140_DSTATE = L4_MABX_P.Unit_Delay_140_InitialCondition;
29328 L4_MABX_DW.Unit_Delay_141_DSTATE = L4_MABX_P.Unit_Delay_141_InitialCondition;
29329 L4_MABX_DW.Unit_Delay_15_DSTATE = L4_MABX_P.Unit_Delay_15_InitialCondition;
29330 L4_MABX_DW.Unit_Delay_16_DSTATE = L4_MABX_P.Unit_Delay_16_InitialCondition;
29331 L4_MABX_DW.Unit_Delay_17_DSTATE = L4_MABX_P.Unit_Delay_17_InitialCondition;
29332 L4_MABX_DW.Unit_Delay_18_DSTATE = L4_MABX_P.Unit_Delay_18_InitialCondition;
29333 L4_MABX_DW.Unit_Delay_19_DSTATE = L4_MABX_P.Unit_Delay_19_InitialCondition;
29334 L4_MABX_DW.Unit_Delay_2_DSTATE = L4_MABX_P.Unit_Delay_2_InitialCondition_p;
29335 L4_MABX_DW.Unit_Delay_20_DSTATE = L4_MABX_P.Unit_Delay_20_InitialCondition;
29336 L4_MABX_DW.Unit_Delay_21_DSTATE = L4_MABX_P.Unit_Delay_21_InitialCondition;
29337 L4_MABX_DW.Unit_Delay_22_DSTATE = L4_MABX_P.Unit_Delay_22_InitialCondition;
29338 L4_MABX_DW.Unit_Delay_23_DSTATE = L4_MABX_P.Unit_Delay_23_InitialCondition;
29339 L4_MABX_DW.Unit_Delay_24_DSTATE = L4_MABX_P.Unit_Delay_24_InitialCondition;
29340 L4_MABX_DW.Unit_Delay_25_DSTATE = L4_MABX_P.Unit_Delay_25_InitialCondition;
29341 L4_MABX_DW.Unit_Delay_26_DSTATE = L4_MABX_P.Unit_Delay_26_InitialCondition;
29342 L4_MABX_DW.Unit_Delay_27_DSTATE = L4_MABX_P.Unit_Delay_27_InitialCondition;
29343 L4_MABX_DW.Unit_Delay_28_DSTATE = L4_MABX_P.Unit_Delay_28_InitialCondition;
29344 L4_MABX_DW.Unit_Delay_29_DSTATE = L4_MABX_P.Unit_Delay_29_InitialCondition;
29345 L4_MABX_DW.Unit_Delay_3_DSTATE = L4_MABX_P.Unit_Delay_3_InitialCondition_p;
29346 L4_MABX_DW.Unit_Delay_30_DSTATE = L4_MABX_P.Unit_Delay_30_InitialCondition;
29347 L4_MABX_DW.Unit_Delay_31_DSTATE = L4_MABX_P.Unit_Delay_31_InitialCondition;
29348 L4_MABX_DW.Unit_Delay_32_DSTATE = L4_MABX_P.Unit_Delay_32_InitialCondition;
29349 L4_MABX_DW.Unit_Delay_33_DSTATE = L4_MABX_P.Unit_Delay_33_InitialCondition;
29350 L4_MABX_DW.Unit_Delay_34_DSTATE = L4_MABX_P.Unit_Delay_34_InitialCondition;
29351 L4_MABX_DW.Unit_Delay_35_DSTATE = L4_MABX_P.Unit_Delay_35_InitialCondition;
29352 L4_MABX_DW.Unit_Delay_36_DSTATE = L4_MABX_P.Unit_Delay_36_InitialCondition;
29353 L4_MABX_DW.Unit_Delay_37_DSTATE = L4_MABX_P.Unit_Delay_37_InitialCondition;
29354 L4_MABX_DW.Unit_Delay_38_DSTATE = L4_MABX_P.Unit_Delay_38_InitialCondition;
29355 L4_MABX_DW.Unit_Delay_39_DSTATE = L4_MABX_P.Unit_Delay_39_InitialCondition;
29356 L4_MABX_DW.Unit_Delay_4_DSTATE = L4_MABX_P.Unit_Delay_4_InitialCondition;
29357 L4_MABX_DW.Unit_Delay_40_DSTATE = L4_MABX_P.Unit_Delay_40_InitialCondition;
29358 L4_MABX_DW.Unit_Delay_41_DSTATE = L4_MABX_P.Unit_Delay_41_InitialCondition;
29359 L4_MABX_DW.Unit_Delay_42_DSTATE = L4_MABX_P.Unit_Delay_42_InitialCondition;
29360 L4_MABX_DW.Unit_Delay_43_DSTATE = L4_MABX_P.Unit_Delay_43_InitialCondition;
29361 L4_MABX_DW.Unit_Delay_44_DSTATE = L4_MABX_P.Unit_Delay_44_InitialCondition;
29362 L4_MABX_DW.Unit_Delay_46_DSTATE = L4_MABX_P.Unit_Delay_46_InitialCondition;
29363 L4_MABX_DW.Unit_Delay_48_DSTATE = L4_MABX_P.Unit_Delay_48_InitialCondition;
29364 L4_MABX_DW.Unit_Delay_49_DSTATE = L4_MABX_P.Unit_Delay_49_InitialCondition;
29365 L4_MABX_DW.Unit_Delay_5_DSTATE = L4_MABX_P.Unit_Delay_5_InitialCondition;
29366 L4_MABX_DW.Unit_Delay_50_DSTATE = L4_MABX_P.Unit_Delay_50_InitialCondition;
29367 L4_MABX_DW.Unit_Delay_51_DSTATE = L4_MABX_P.Unit_Delay_51_InitialCondition;
29368 L4_MABX_DW.Unit_Delay_52_DSTATE = L4_MABX_P.Unit_Delay_52_InitialCondition;
29369 L4_MABX_DW.Unit_Delay_53_DSTATE = L4_MABX_P.Unit_Delay_53_InitialCondition;
29370 L4_MABX_DW.Unit_Delay_54_DSTATE = L4_MABX_P.Unit_Delay_54_InitialCondition;
29371 L4_MABX_DW.Unit_Delay_55_DSTATE = L4_MABX_P.Unit_Delay_55_InitialCondition;
29372 L4_MABX_DW.Unit_Delay_56_DSTATE = L4_MABX_P.Unit_Delay_56_InitialCondition;
29373 L4_MABX_DW.Unit_Delay_57_DSTATE = L4_MABX_P.Unit_Delay_57_InitialCondition;
29374 L4_MABX_DW.Unit_Delay_58_DSTATE = L4_MABX_P.Unit_Delay_58_InitialCondition;
29375 L4_MABX_DW.Unit_Delay_59_DSTATE = L4_MABX_P.Unit_Delay_59_InitialCondition;
29376 L4_MABX_DW.Unit_Delay_6_DSTATE = L4_MABX_P.Unit_Delay_6_InitialCondition;
29377 L4_MABX_DW.Unit_Delay_60_DSTATE = L4_MABX_P.Unit_Delay_60_InitialCondition;
29378 L4_MABX_DW.Unit_Delay_61_DSTATE = L4_MABX_P.Unit_Delay_61_InitialCondition;
29379 L4_MABX_DW.Unit_Delay_62_DSTATE = L4_MABX_P.Unit_Delay_62_InitialCondition;
29380 L4_MABX_DW.Unit_Delay_63_DSTATE = L4_MABX_P.Unit_Delay_63_InitialCondition;
29381 L4_MABX_DW.Unit_Delay_64_DSTATE = L4_MABX_P.Unit_Delay_64_InitialCondition;
29382 L4_MABX_DW.Unit_Delay_65_DSTATE = L4_MABX_P.Unit_Delay_65_InitialCondition;
29383 L4_MABX_DW.Unit_Delay_66_DSTATE = L4_MABX_P.Unit_Delay_66_InitialCondition;
29384 L4_MABX_DW.Unit_Delay_67_DSTATE = L4_MABX_P.Unit_Delay_67_InitialCondition;
29385 L4_MABX_DW.Unit_Delay_68_DSTATE = L4_MABX_P.Unit_Delay_68_InitialCondition;
29386 L4_MABX_DW.Unit_Delay_69_DSTATE = L4_MABX_P.Unit_Delay_69_InitialCondition;
29387 L4_MABX_DW.Unit_Delay_7_DSTATE = L4_MABX_P.Unit_Delay_7_InitialCondition;
29388 L4_MABX_DW.Unit_Delay_70_DSTATE = L4_MABX_P.Unit_Delay_70_InitialCondition;
29389 L4_MABX_DW.Unit_Delay_71_DSTATE = L4_MABX_P.Unit_Delay_71_InitialCondition;
29390 L4_MABX_DW.Unit_Delay_72_DSTATE = L4_MABX_P.Unit_Delay_72_InitialCondition;
29391 L4_MABX_DW.Unit_Delay_73_DSTATE = L4_MABX_P.Unit_Delay_73_InitialCondition;
29392 L4_MABX_DW.Unit_Delay_74_DSTATE = L4_MABX_P.Unit_Delay_74_InitialCondition;
29393 L4_MABX_DW.Unit_Delay_75_DSTATE = L4_MABX_P.Unit_Delay_75_InitialCondition;
29394 L4_MABX_DW.Unit_Delay_76_DSTATE = L4_MABX_P.Unit_Delay_76_InitialCondition;
29395 L4_MABX_DW.Unit_Delay_77_DSTATE = L4_MABX_P.Unit_Delay_77_InitialCondition;
29396 L4_MABX_DW.Unit_Delay_78_DSTATE = L4_MABX_P.Unit_Delay_78_InitialCondition;
29397 L4_MABX_DW.Unit_Delay_8_DSTATE = L4_MABX_P.Unit_Delay_8_InitialCondition;
29398 L4_MABX_DW.Unit_Delay_82_DSTATE = L4_MABX_P.Unit_Delay_82_InitialCondition;
29399 L4_MABX_DW.Unit_Delay_83_DSTATE = L4_MABX_P.Unit_Delay_83_InitialCondition;
29400 L4_MABX_DW.Unit_Delay_84_DSTATE = L4_MABX_P.Unit_Delay_84_InitialCondition;
29401 L4_MABX_DW.Unit_Delay_85_DSTATE = L4_MABX_P.Unit_Delay_85_InitialCondition;
29402 L4_MABX_DW.Unit_Delay_86_DSTATE = L4_MABX_P.Unit_Delay_86_InitialCondition;
29403 L4_MABX_DW.Unit_Delay_87_DSTATE = L4_MABX_P.Unit_Delay_87_InitialCondition;
29404 L4_MABX_DW.Unit_Delay_88_DSTATE = L4_MABX_P.Unit_Delay_88_InitialCondition;
29405 L4_MABX_DW.Unit_Delay_89_DSTATE = L4_MABX_P.Unit_Delay_89_InitialCondition;
29406 L4_MABX_DW.Unit_Delay_9_DSTATE = L4_MABX_P.Unit_Delay_9_InitialCondition;
29407 L4_MABX_DW.Unit_Delay_90_DSTATE = L4_MABX_P.Unit_Delay_90_InitialCondition;
29408 L4_MABX_DW.Unit_Delay_91_DSTATE = L4_MABX_P.Unit_Delay_91_InitialCondition;
29409 L4_MABX_DW.Unit_Delay_92_DSTATE = L4_MABX_P.Unit_Delay_92_InitialCondition;
29410 L4_MABX_DW.Unit_Delay_93_DSTATE = L4_MABX_P.Unit_Delay_93_InitialCondition;
29411 L4_MABX_DW.Unit_Delay_94_DSTATE = L4_MABX_P.Unit_Delay_94_InitialCondition;
29412 L4_MABX_DW.Unit_Delay_95_DSTATE = L4_MABX_P.Unit_Delay_95_InitialCondition;
29413 L4_MABX_DW.Unit_Delay_96_DSTATE = L4_MABX_P.Unit_Delay_96_InitialCondition;
29414 L4_MABX_DW.Unit_Delay_97_DSTATE = L4_MABX_P.Unit_Delay_97_InitialCondition;
29415 L4_MABX_DW.Unit_Delay_98_DSTATE = L4_MABX_P.Unit_Delay_98_InitialCondition;
29416 L4_MABX_DW.Unit_Delay_99_DSTATE = L4_MABX_P.Unit_Delay_99_InitialCondition;
29417
29418 /* InitializeConditions for UnitDelay: '<S635>/Unit_Delay2' */
29419 L4_MABX_DW.Unit_Delay2_DSTATE_h = L4_MABX_P.Unit_Delay2_InitialCondition_h;
29420
29421 /* InitializeConditions for UnitDelay: '<S635>/Unit_Delay1' */
29422 L4_MABX_DW.Unit_Delay1_DSTATE_i = L4_MABX_P.Unit_Delay1_InitialCondition_b;
29423
29424 /* InitializeConditions for UnitDelay: '<S642>/Unit_Delay' */
29425 L4_MABX_DW.Unit_Delay_DSTATE_d1 = L4_MABX_P.Unit_Delay_InitialCondition_gj;
29426
29427 /* InitializeConditions for UnitDelay: '<S10>/Unit_Delay' */
29428 L4_MABX_DW.Unit_Delay_DSTATE_do = L4_MABX_P.Unit_Delay_InitialCondition_jp;
29429
29430 /* SystemInitialize for Enabled SubSystem: '<S483>/AIR1' */
29431 /* SystemInitialize for Outport: '<S484>/PneumaticSupplyPress' */
29432 L4_MABX_B.SFunction1_o1_mk = L4_MABX_P.PneumaticSupplyPress_Y0;
29433
29434 /* SystemInitialize for Outport: '<S484>/ParkingAnd_orTrailerAirPress' */
29435 L4_MABX_B.SFunction1_o2_d4 = L4_MABX_P.ParkingAnd_orTrailerAirPress_Y0;
29436
29437 /* SystemInitialize for Outport: '<S484>/ServiceBrakeCircuit1AirPress' */
29438 L4_MABX_B.SFunction1_o3_gu = L4_MABX_P.ServiceBrakeCircuit1AirPress_Y0;
29439
29440 /* SystemInitialize for Outport: '<S484>/ServiceBrakeCircuit2AirPress' */
29441 L4_MABX_B.SFunction1_o4_ng = L4_MABX_P.ServiceBrakeCircuit2AirPress_Y0;
29442
29443 /* SystemInitialize for Outport: '<S484>/AuxEquipmentSupplyPress' */
29444 L4_MABX_B.SFunction1_o5_gz = L4_MABX_P.AuxEquipmentSupplyPress_Y0;
29445
29446 /* SystemInitialize for Outport: '<S484>/AirSuspensionSupplyPress' */
29447 L4_MABX_B.SFunction1_o6_j4 = L4_MABX_P.AirSuspensionSupplyPress_Y0;
29448
29449 /* SystemInitialize for Outport: '<S484>/AirCompressorStatus' */
29450 L4_MABX_B.SFunction1_o7_gd = L4_MABX_P.AirCompressorStatus_Y0;
29451
29452 /* SystemInitialize for Outport: '<S484>/PowertrainCircuitAirSupplyPress' */
29453 L4_MABX_B.SFunction1_o8_e2 = L4_MABX_P.PowertrainCircuitAirSupplyPress;
29454
29455 /* SystemInitialize for Outport: '<S484>/RX status' */
29456 L4_MABX_B.SFunction1_o9_hq5 = L4_MABX_P.RXstatus_Y0_bt;
29457
29458 /* SystemInitialize for Outport: '<S484>/RX time' */
29459 L4_MABX_B.SFunction1_o10_f = L4_MABX_P.RXtime_Y0_mp;
29460
29461 /* SystemInitialize for Outport: '<S484>/RX delta time' */
29462 L4_MABX_B.SFunction1_o11_em = L4_MABX_P.RXdeltatime_Y0_gu;
29463
29464 /* End of SystemInitialize for SubSystem: '<S483>/AIR1' */
29465
29466 /* SystemInitialize for Enabled SubSystem: '<S485>/AMB' */
29467 /* SystemInitialize for Outport: '<S486>/BarometricPress' */
29468 L4_MABX_B.SFunction1_o1_ms = L4_MABX_P.BarometricPress_Y0;
29469
29470 /* SystemInitialize for Outport: '<S486>/CabInteriorTemp' */
29471 L4_MABX_B.SFunction1_o2_n0a = L4_MABX_P.CabInteriorTemp_Y0;
29472
29473 /* SystemInitialize for Outport: '<S486>/AmbientAirTemp' */
29474 L4_MABX_B.SFunction1_o3_ev = L4_MABX_P.AmbientAirTemp_Y0;
29475
29476 /* SystemInitialize for Outport: '<S486>/EngAirIntakeTemp' */
29477 L4_MABX_B.SFunction1_o4_lo = L4_MABX_P.EngAirIntakeTemp_Y0;
29478
29479 /* SystemInitialize for Outport: '<S486>/RoadSurfaceTemp' */
29480 L4_MABX_B.SFunction1_o5_a = L4_MABX_P.RoadSurfaceTemp_Y0;
29481
29482 /* SystemInitialize for Outport: '<S486>/RX status' */
29483 L4_MABX_B.SFunction1_o6_f0 = L4_MABX_P.RXstatus_Y0_d;
29484
29485 /* SystemInitialize for Outport: '<S486>/RX time' */
29486 L4_MABX_B.SFunction1_o7_ee = L4_MABX_P.RXtime_Y0_m2;
29487
29488 /* SystemInitialize for Outport: '<S486>/RX delta time' */
29489 L4_MABX_B.SFunction1_o8_d = L4_MABX_P.RXdeltatime_Y0_k;
29490
29491 /* End of SystemInitialize for SubSystem: '<S485>/AMB' */
29492
29493 /* SystemInitialize for Atomic SubSystem: '<S815>/CAN_TX_1000ms' */
29494 /* SystemInitialize for Enabled SubSystem: '<S835>/AIR1' */
29495 /* SystemInitialize for Outport: '<S836>/TX status' */
29496 L4_MABX_B.SFunction1_o1_h = L4_MABX_P.TXstatus_Y0;
29497
29498 /* SystemInitialize for Outport: '<S836>/TX time' */
29499 L4_MABX_B.SFunction1_o2_eh = L4_MABX_P.TXtime_Y0;
29500
29501 /* SystemInitialize for Outport: '<S836>/TX delta time' */
29502 L4_MABX_B.SFunction1_o3_nc = L4_MABX_P.TXdeltatime_Y0;
29503
29504 /* SystemInitialize for Outport: '<S836>/TX delay time' */
29505 L4_MABX_B.SFunction1_o4_md = L4_MABX_P.TXdelaytime_Y0;
29506
29507 /* End of SystemInitialize for SubSystem: '<S835>/AIR1' */
29508
29509 /* SystemInitialize for Enabled SubSystem: '<S843>/AMB' */
29510 /* SystemInitialize for Outport: '<S844>/TX status' */
29511 L4_MABX_B.SFunction1_o1_kge = L4_MABX_P.TXstatus_Y0_a;
29512
29513 /* SystemInitialize for Outport: '<S844>/TX time' */
29514 L4_MABX_B.SFunction1_o2_ob = L4_MABX_P.TXtime_Y0_g;
29515
29516 /* SystemInitialize for Outport: '<S844>/TX delta time' */
29517 L4_MABX_B.SFunction1_o3_ha = L4_MABX_P.TXdeltatime_Y0_i;
29518
29519 /* SystemInitialize for Outport: '<S844>/TX delay time' */
29520 L4_MABX_B.SFunction1_o4_m = L4_MABX_P.TXdelaytime_Y0_j;
29521
29522 /* End of SystemInitialize for SubSystem: '<S843>/AMB' */
29523 /* End of SystemInitialize for SubSystem: '<S815>/CAN_TX_1000ms' */
29524
29525 /* SystemInitialize for Chart: '<S811>/Chart' */
29526 L4_MABX_DW.is_active_c5_SUB_ECU_L4_MABX_HW = 0U;
29527 L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_NO_ACTIVE_CHILD;
29528
29529 /* SystemInitialize for Chart: '<S729>/Health State Machine PWM Sensor 1' */
29530 L4_MABX_DW.is_FAILURE_DETECTED_p = L4_MABX_IN_NO_ACTIVE_CHILD;
29531 L4_MABX_DW.is_active_c9_SUB_ECU_L4_MABX_HW = 0U;
29532 L4_MABX_DW.is_c9_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_NO_ACTIVE_CHILD;
29533
29534 /* SystemInitialize for Chart: '<S729>/Health State Machine PWM Sensor 2' */
29535 L4_MABX_DW.is_FAILURE_DETECTED = L4_MABX_IN_NO_ACTIVE_CHILD;
29536 L4_MABX_DW.is_active_c10_SUB_ECU_L4_MABX_H = 0U;
29537 L4_MABX_DW.is_c10_SUB_ECU_L4_MABX_HW_Inter = L4_MABX_IN_NO_ACTIVE_CHILD;
29538
29539 /* SystemInitialize for Enabled SubSystem: '<S726>/Slew_at_event' */
29540 /* InitializeConditions for UnitDelay: '<S804>/Unit_Delay' */
29541 L4_MABX_DW.Unit_Delay_DSTATE_il = L4_MABX_P.Unit_Delay_InitialCondition_kh;
29542
29543 /* InitializeConditions for UnitDelay: '<S805>/Unit_Delay' */
29544 L4_MABX_DW.Unit_Delay_DSTATE_n = L4_MABX_P.Unit_Delay_InitialCondition_a2;
29545
29546 /* InitializeConditions for UnitDelay: '<S808>/FixPt Unit Delay2' */
29547 L4_MABX_DW.FixPtUnitDelay2_DSTATE_ne =
29548 L4_MABX_P.FixPtUnitDelay2_InitialCondit_h;
29549
29550 /* InitializeConditions for UnitDelay: '<S808>/FixPt Unit Delay1' */
29551 L4_MABX_DW.FixPtUnitDelay1_DSTATE_b =
29552 L4_MABX_P.FixPtUnitDelay1_InitialCondi_mh;
29553
29554 /* InitializeConditions for UnitDelay: '<S803>/Unit_Delay' */
29555 L4_MABX_DW.Unit_Delay_DSTATE_cf = L4_MABX_P.Unit_Delay_InitialCondition_bqr;
29556
29557 /* SystemInitialize for Outport: '<S733>/F_Out_slewing' */
29558 L4_MABX_B.LogicalOperator_ny = L4_MABX_P.F_Out_slewing_Y0_c;
29559
29560 /* SystemInitialize for Outport: '<S733>/Out' */
29561 L4_MABX_B.If_Then_Else_jx.Switch = L4_MABX_P.Out_Y0_no;
29562
29563 /* End of SystemInitialize for SubSystem: '<S726>/Slew_at_event' */
29564
29565 /* SystemInitialize for Enabled SubSystem: '<S493>/CCVS1_31' */
29566 /* SystemInitialize for Outport: '<S494>/TwoSpeedAxleSwitch' */
29567 L4_MABX_B.SFunction1_o1_ni = L4_MABX_P.TwoSpeedAxleSwitch_Y0_k;
29568
29569 /* SystemInitialize for Outport: '<S494>/ParkingBrakeSwitch' */
29570 L4_MABX_B.SFunction1_o2_hy = L4_MABX_P.ParkingBrakeSwitch_Y0_n;
29571
29572 /* SystemInitialize for Outport: '<S494>/CruiseCtrlPauseSwitch' */
29573 L4_MABX_B.SFunction1_o3_ft = L4_MABX_P.CruiseCtrlPauseSwitch_Y0_f;
29574
29575 /* SystemInitialize for Outport: '<S494>/ParkBrakeReleaseInhibitRq' */
29576 L4_MABX_B.SFunction1_o4_iv = L4_MABX_P.ParkBrakeReleaseInhibitRq_Y0_c;
29577
29578 /* SystemInitialize for Outport: '<S494>/WheelBasedVehicleSpeed' */
29579 L4_MABX_B.SFunction1_o5_el = L4_MABX_P.WheelBasedVehicleSpeed_Y0_l;
29580
29581 /* SystemInitialize for Outport: '<S494>/CruiseCtrlActive' */
29582 L4_MABX_B.SFunction1_o6_j = L4_MABX_P.CruiseCtrlActive_Y0_m;
29583
29584 /* SystemInitialize for Outport: '<S494>/CruiseCtrlEnableSwitch' */
29585 L4_MABX_B.SFunction1_o7_kk = L4_MABX_P.CruiseCtrlEnableSwitch_Y0_h;
29586
29587 /* SystemInitialize for Outport: '<S494>/BrakeSwitch' */
29588 L4_MABX_B.SFunction1_o8_l = L4_MABX_P.BrakeSwitch_Y0_h;
29589
29590 /* SystemInitialize for Outport: '<S494>/ClutchSwitch' */
29591 L4_MABX_B.SFunction1_o9_mz = L4_MABX_P.ClutchSwitch_Y0_l;
29592
29593 /* SystemInitialize for Outport: '<S494>/CruiseCtrlSetSwitch' */
29594 L4_MABX_B.SFunction1_o10_d = L4_MABX_P.CruiseCtrlSetSwitch_Y0_a;
29595
29596 /* SystemInitialize for Outport: '<S494>/CruiseCtrlCoastSwitch' */
29597 L4_MABX_B.SFunction1_o11_j = L4_MABX_P.CruiseCtrlCoastSwitch_Y0_n;
29598
29599 /* SystemInitialize for Outport: '<S494>/CruiseCtrlResumeSwitch' */
29600 L4_MABX_B.SFunction1_o12_fc = L4_MABX_P.CruiseCtrlResumeSwitch_Y0_b;
29601
29602 /* SystemInitialize for Outport: '<S494>/CruiseCtrlAccelerateSwitch' */
29603 L4_MABX_B.SFunction1_o13_i = L4_MABX_P.CruiseCtrlAccelerateSwitch_Y0_m;
29604
29605 /* SystemInitialize for Outport: '<S494>/CruiseCtrlSetSpeed' */
29606 L4_MABX_B.SFunction1_o14_a = L4_MABX_P.CruiseCtrlSetSpeed_Y0_n;
29607
29608 /* SystemInitialize for Outport: '<S494>/PTOGovernorState' */
29609 L4_MABX_B.SFunction1_o15_k = L4_MABX_P.PTOGovernorState_Y0_o;
29610
29611 /* SystemInitialize for Outport: '<S494>/CruiseCtrlStates' */
29612 L4_MABX_B.SFunction1_o16_k = L4_MABX_P.CruiseCtrlStates_Y0_o;
29613
29614 /* SystemInitialize for Outport: '<S494>/EngIdleIncrementSwitch' */
29615 L4_MABX_B.SFunction1_o17_m = L4_MABX_P.EngIdleIncrementSwitch_Y0_h;
29616
29617 /* SystemInitialize for Outport: '<S494>/EngIdleDecrementSwitch' */
29618 L4_MABX_B.SFunction1_o18_i = L4_MABX_P.EngIdleDecrementSwitch_Y0_f;
29619
29620 /* SystemInitialize for Outport: '<S494>/EngTestModeSwitch' */
29621 L4_MABX_B.SFunction1_o19_p = L4_MABX_P.EngTestModeSwitch_Y0_m;
29622
29623 /* SystemInitialize for Outport: '<S494>/EngShutdownOverrideSwitch' */
29624 L4_MABX_B.SFunction1_o20_g = L4_MABX_P.EngShutdownOverrideSwitch_Y0_f;
29625
29626 /* SystemInitialize for Outport: '<S494>/RX status' */
29627 L4_MABX_B.SFunction1_o21_f = L4_MABX_P.RXstatus_Y0_mh;
29628
29629 /* SystemInitialize for Outport: '<S494>/RX time' */
29630 L4_MABX_B.SFunction1_o22_fj = L4_MABX_P.RXtime_Y0_k;
29631
29632 /* SystemInitialize for Outport: '<S494>/RX delta time' */
29633 L4_MABX_B.SFunction1_o23_g = L4_MABX_P.RXdeltatime_Y0_l;
29634
29635 /* End of SystemInitialize for SubSystem: '<S493>/CCVS1_31' */
29636
29637 /* SystemInitialize for Enabled SubSystem: '<S504>/EBC2_0B1' */
29638 /* SystemInitialize for Outport: '<S505>/FrontAxleSpeed' */
29639 L4_MABX_B.SFunction1_o1_os = L4_MABX_P.FrontAxleSpeed_Y0;
29640
29641 /* SystemInitialize for Outport: '<S505>/RelativeSpeedFrontAxleLeftWheel' */
29642 L4_MABX_B.SFunction1_o2_ln = L4_MABX_P.RelativeSpeedFrontAxleLeftWheel;
29643
29644 /* SystemInitialize for Outport: '<S505>/RlativeSpeedFrontAxleRightWheel' */
29645 L4_MABX_B.SFunction1_o3_bz = L4_MABX_P.RlativeSpeedFrontAxleRightWheel;
29646
29647 /* SystemInitialize for Outport: '<S505>/RelativeSpeedRearAxle1LeftWheel' */
29648 L4_MABX_B.SFunction1_o4_ex = L4_MABX_P.RelativeSpeedRearAxle1LeftWheel;
29649
29650 /* SystemInitialize for Outport: '<S505>/RlativeSpeedRearAxle1RightWheel' */
29651 L4_MABX_B.SFunction1_o5_fu = L4_MABX_P.RlativeSpeedRearAxle1RightWheel;
29652
29653 /* SystemInitialize for Outport: '<S505>/RelativeSpeedRearAxle2LeftWheel' */
29654 L4_MABX_B.SFunction1_o6_po = L4_MABX_P.RelativeSpeedRearAxle2LeftWheel;
29655
29656 /* SystemInitialize for Outport: '<S505>/RlativeSpeedRearAxle2RightWheel' */
29657 L4_MABX_B.SFunction1_o7_lw = L4_MABX_P.RlativeSpeedRearAxle2RightWheel;
29658
29659 /* SystemInitialize for Outport: '<S505>/RX status' */
29660 L4_MABX_B.SFunction1_o8_e = L4_MABX_P.RXstatus_Y0_f;
29661
29662 /* SystemInitialize for Outport: '<S505>/RX time' */
29663 L4_MABX_B.SFunction1_o9_jb = L4_MABX_P.RXtime_Y0_p;
29664
29665 /* SystemInitialize for Outport: '<S505>/RX delta time' */
29666 L4_MABX_B.SFunction1_o10_cx = L4_MABX_P.RXdeltatime_Y0_nd;
29667
29668 /* End of SystemInitialize for SubSystem: '<S504>/EBC2_0B1' */
29669
29670 /* SystemInitialize for Enabled SubSystem: '<S562>/HRW_0B' */
29671 /* SystemInitialize for Outport: '<S563>/FrontAxleLeftWheelSpeed' */
29672 L4_MABX_B.SFunction1_o1_le = L4_MABX_P.FrontAxleLeftWheelSpeed_Y0;
29673
29674 /* SystemInitialize for Outport: '<S563>/FrontAxleRightWheelSpeed' */
29675 L4_MABX_B.SFunction1_o2_g3 = L4_MABX_P.FrontAxleRightWheelSpeed_Y0;
29676
29677 /* SystemInitialize for Outport: '<S563>/RearAxleLeftWheelSpeed' */
29678 L4_MABX_B.SFunction1_o3_fy = L4_MABX_P.RearAxleLeftWheelSpeed_Y0;
29679
29680 /* SystemInitialize for Outport: '<S563>/RearAxleRightWheelSpeed' */
29681 L4_MABX_B.SFunction1_o4_nk = L4_MABX_P.RearAxleRightWheelSpeed_Y0;
29682
29683 /* SystemInitialize for Outport: '<S563>/RX status' */
29684 L4_MABX_B.SFunction1_o5_bu = L4_MABX_P.RXstatus_Y0_p;
29685
29686 /* SystemInitialize for Outport: '<S563>/RX time' */
29687 L4_MABX_B.SFunction1_o6_k = L4_MABX_P.RXtime_Y0_h;
29688
29689 /* SystemInitialize for Outport: '<S563>/RX delta time' */
29690 L4_MABX_B.SFunction1_o7_i = L4_MABX_P.RXdeltatime_Y0_lz;
29691
29692 /* End of SystemInitialize for SubSystem: '<S562>/HRW_0B' */
29693
29694 /* SystemInitialize for Enabled SubSystem: '<S502>/EBC1_0B' */
29695 /* SystemInitialize for Outport: '<S503>/ASREngCtrlActive' */
29696 L4_MABX_B.SFunction1_o1_ih = L4_MABX_P.ASREngCtrlActive_Y0_e;
29697
29698 /* SystemInitialize for Outport: '<S503>/ASRBrakeCtrlActive' */
29699 L4_MABX_B.SFunction1_o2_i0 = L4_MABX_P.ASRBrakeCtrlActive_Y0_n;
29700
29701 /* SystemInitialize for Outport: '<S503>/AntiLockBrakingActive' */
29702 L4_MABX_B.SFunction1_o3_ls = L4_MABX_P.AntiLockBrakingActive_Y0_b;
29703
29704 /* SystemInitialize for Outport: '<S503>/EBSBrakeSwitch' */
29705 L4_MABX_B.SFunction1_o4_nr = L4_MABX_P.EBSBrakeSwitch_Y0_o;
29706
29707 /* SystemInitialize for Outport: '<S503>/BrakePedalPos' */
29708 L4_MABX_B.SFunction1_o5_k4 = L4_MABX_P.BrakePedalPos_Y0_j;
29709
29710 /* SystemInitialize for Outport: '<S503>/ABSOffroadSwitch' */
29711 L4_MABX_B.SFunction1_o6_b = L4_MABX_P.ABSOffroadSwitch_Y0_d;
29712
29713 /* SystemInitialize for Outport: '<S503>/ASROffroadSwitch' */
29714 L4_MABX_B.SFunction1_o7_g = L4_MABX_P.ASROffroadSwitch_Y0_e;
29715
29716 /* SystemInitialize for Outport: '<S503>/ASRHillHolderSwitch' */
29717 L4_MABX_B.SFunction1_o8_ih = L4_MABX_P.ASRHillHolderSwitch_Y0_g;
29718
29719 /* SystemInitialize for Outport: '<S503>/TractionCtrlOverrideSwitch' */
29720 L4_MABX_B.SFunction1_o9_i = L4_MABX_P.TractionCtrlOverrideSwitch_Y0_h;
29721
29722 /* SystemInitialize for Outport: '<S503>/AccelInterlockSwitch' */
29723 L4_MABX_B.SFunction1_o10_o = L4_MABX_P.AccelInterlockSwitch_Y0_o;
29724
29725 /* SystemInitialize for Outport: '<S503>/EngDerateSwitch' */
29726 L4_MABX_B.SFunction1_o11_gk = L4_MABX_P.EngDerateSwitch_Y0_c;
29727
29728 /* SystemInitialize for Outport: '<S503>/EngAuxShutdownSwitch' */
29729 L4_MABX_B.SFunction1_o12_l = L4_MABX_P.EngAuxShutdownSwitch_Y0_f;
29730
29731 /* SystemInitialize for Outport: '<S503>/RemoteAccelEnableSwitch' */
29732 L4_MABX_B.SFunction1_o13_g = L4_MABX_P.RemoteAccelEnableSwitch_Y0_e;
29733
29734 /* SystemInitialize for Outport: '<S503>/EngRetarderSelection' */
29735 L4_MABX_B.SFunction1_o14_h = L4_MABX_P.EngRetarderSelection_Y0_h;
29736
29737 /* SystemInitialize for Outport: '<S503>/ABSFullyOperational' */
29738 L4_MABX_B.SFunction1_o15_n = L4_MABX_P.ABSFullyOperational_Y0_n;
29739
29740 /* SystemInitialize for Outport: '<S503>/EBSRedWarningSignal' */
29741 L4_MABX_B.SFunction1_o16_p = L4_MABX_P.EBSRedWarningSignal_Y0_o;
29742
29743 /* SystemInitialize for Outport: '<S503>/ABS_EBSAmberWarningSignal' */
29744 L4_MABX_B.SFunction1_o17_a = L4_MABX_P.ABS_EBSAmberWarningSignal_Y0_i;
29745
29746 /* SystemInitialize for Outport: '<S503>/ATC_ASRInformationSignal' */
29747 L4_MABX_B.SFunction1_o18_p = L4_MABX_P.ATC_ASRInformationSignal_Y0_e;
29748
29749 /* SystemInitialize for Outport: '<S503>/SrcAddrssOfCtrllngDvcFrBrkCntrl' */
29750 L4_MABX_B.SFunction1_o19_b = L4_MABX_P.SrcAddrssOfCtrllngDvcFrBrkCnt_a;
29751
29752 /* SystemInitialize for Outport: '<S503>/HaltBrakeSwitch' */
29753 L4_MABX_B.SFunction1_o20_c = L4_MABX_P.HaltBrakeSwitch_Y0_n;
29754
29755 /* SystemInitialize for Outport: '<S503>/TrailerABSStatus' */
29756 L4_MABX_B.SFunction1_o21_l = L4_MABX_P.TrailerABSStatus_Y0_o;
29757
29758 /* SystemInitialize for Outport: '<S503>/TrctrMntdTrilerABSWarningSignal' */
29759 L4_MABX_B.SFunction1_o22_i = L4_MABX_P.TrctrMntdTrilerABSWarningSign_j;
29760
29761 /* SystemInitialize for Outport: '<S503>/RX status' */
29762 L4_MABX_B.SFunction1_o23_n = L4_MABX_P.RXstatus_Y0_g3;
29763
29764 /* SystemInitialize for Outport: '<S503>/RX time' */
29765 L4_MABX_B.SFunction1_o24_e = L4_MABX_P.RXtime_Y0_j;
29766
29767 /* SystemInitialize for Outport: '<S503>/RX delta time' */
29768 L4_MABX_B.SFunction1_o25_h = L4_MABX_P.RXdeltatime_Y0_ng;
29769
29770 /* End of SystemInitialize for SubSystem: '<S502>/EBC1_0B' */
29771
29772 /* SystemInitialize for Enabled SubSystem: '<S557>/ETC2_031' */
29773 /* SystemInitialize for Outport: '<S558>/SPN524_TransSelectedGear' */
29774 L4_MABX_B.SFunction1_o1_jf = L4_MABX_P.SPN524_TransSelectedGear_Y0;
29775
29776 /* SystemInitialize for Outport: '<S558>/SPN526_TransActualGearRatio' */
29777 L4_MABX_B.SFunction1_o2_jy = L4_MABX_P.SPN526_TransActualGearRatio_Y0;
29778
29779 /* SystemInitialize for Outport: '<S558>/SPN523_TransCurrentGear' */
29780 L4_MABX_B.SFunction1_o3_fa = L4_MABX_P.SPN523_TransCurrentGear_Y0;
29781
29782 /* SystemInitialize for Outport: '<S558>/RX status' */
29783 L4_MABX_B.SFunction1_o4_os = L4_MABX_P.RXstatus_Y0_nu;
29784
29785 /* SystemInitialize for Outport: '<S558>/RX time' */
29786 L4_MABX_B.SFunction1_o5_i3 = L4_MABX_P.RXtime_Y0_pe;
29787
29788 /* SystemInitialize for Outport: '<S558>/RX delta time' */
29789 L4_MABX_B.SFunction1_o6_dw = L4_MABX_P.RXdeltatime_Y0_cw;
29790
29791 /* End of SystemInitialize for SubSystem: '<S557>/ETC2_031' */
29792
29793 /* SystemInitialize for Enabled SubSystem: '<S551>/EEC1_001' */
29794 /* SystemInitialize for Outport: '<S552>/EngTorqueMode' */
29795 L4_MABX_B.SFunction1_o1_am = L4_MABX_P.EngTorqueMode_Y0;
29796
29797 /* SystemInitialize for Outport: '<S552>/ActlEngPrcntTrqueHighResolution' */
29798 L4_MABX_B.SFunction1_o2_lx = L4_MABX_P.ActlEngPrcntTrqueHighResolution;
29799
29800 /* SystemInitialize for Outport: '<S552>/DriversDemandEngPercentTorque' */
29801 L4_MABX_B.SFunction1_o3_hl = L4_MABX_P.DriversDemandEngPercentTorque_Y;
29802
29803 /* SystemInitialize for Outport: '<S552>/ActualEngPercentTorque' */
29804 L4_MABX_B.SFunction1_o4_ms = L4_MABX_P.ActualEngPercentTorque_Y0;
29805
29806 /* SystemInitialize for Outport: '<S552>/EngSpeed' */
29807 L4_MABX_B.SFunction1_o5_lc = L4_MABX_P.EngSpeed_Y0;
29808
29809 /* SystemInitialize for Outport: '<S552>/SrcAddrssOfCtrllngDvcFrEngCntrl' */
29810 L4_MABX_B.SFunction1_o6_o = L4_MABX_P.SrcAddrssOfCtrllngDvcFrEngCntrl;
29811
29812 /* SystemInitialize for Outport: '<S552>/EngStarterMode' */
29813 L4_MABX_B.SFunction1_o7_jh = L4_MABX_P.EngStarterMode_Y0;
29814
29815 /* SystemInitialize for Outport: '<S552>/EngDemandPercentTorque' */
29816 L4_MABX_B.SFunction1_o8_a0 = L4_MABX_P.EngDemandPercentTorque_Y0;
29817
29818 /* SystemInitialize for Outport: '<S552>/RX status' */
29819 L4_MABX_B.SFunction1_o9_mg = L4_MABX_P.RXstatus_Y0_fg;
29820
29821 /* SystemInitialize for Outport: '<S552>/RX time' */
29822 L4_MABX_B.SFunction1_o10_nr = L4_MABX_P.RXtime_Y0_mx;
29823
29824 /* SystemInitialize for Outport: '<S552>/RX delta time' */
29825 L4_MABX_B.SFunction1_o11_g0 = L4_MABX_P.RXdeltatime_Y0_bh;
29826
29827 /* End of SystemInitialize for SubSystem: '<S551>/EEC1_001' */
29828
29829 /* SystemInitialize for Enabled SubSystem: '<S555>/EEC3_001' */
29830 /* SystemInitialize for Outport: '<S556>/SPN514_NominalFrictionPercentTorque' */
29831 L4_MABX_B.SFunction1_o1_nf = L4_MABX_P.SPN514_NominalFrictionPercentTo;
29832
29833 /* SystemInitialize for Outport: '<S556>/SPN2978_EstEngParasiticLossesPercentTorque' */
29834 L4_MABX_B.SFunction1_o2_eqk = L4_MABX_P.SPN2978_EstEngParasiticLossesPe;
29835
29836 /* SystemInitialize for Outport: '<S556>/RX status' */
29837 L4_MABX_B.SFunction1_o3_fx = L4_MABX_P.RXstatus_Y0_i;
29838
29839 /* SystemInitialize for Outport: '<S556>/RX time' */
29840 L4_MABX_B.SFunction1_o4_ki = L4_MABX_P.RXtime_Y0_i;
29841
29842 /* SystemInitialize for Outport: '<S556>/RX delta time' */
29843 L4_MABX_B.SFunction1_o5_j4 = L4_MABX_P.RXdeltatime_Y0_e;
29844
29845 /* End of SystemInitialize for SubSystem: '<S555>/EEC3_001' */
29846
29847 /* SystemInitialize for Enabled SubSystem: '<S498>/CVW_0B1' */
29848 /* SystemInitialize for Outport: '<S499>/SPN1760_GrossCombinationVehicleWeight' */
29849 L4_MABX_B.SFunction1_o1_jm = L4_MABX_P.SPN1760_GrossCombinationVehicle;
29850
29851 /* SystemInitialize for Outport: '<S499>/RX status' */
29852 L4_MABX_B.SFunction1_o2_ex = L4_MABX_P.RXstatus_Y0_h;
29853
29854 /* SystemInitialize for Outport: '<S499>/RX time' */
29855 L4_MABX_B.SFunction1_o3_kh = L4_MABX_P.RXtime_Y0_n;
29856
29857 /* SystemInitialize for Outport: '<S499>/RX delta time' */
29858 L4_MABX_B.SFunction1_o4_jm = L4_MABX_P.RXdeltatime_Y0_f;
29859
29860 /* End of SystemInitialize for SubSystem: '<S498>/CVW_0B1' */
29861
29862 /* SystemInitialize for Enabled SubSystem: '<S479>/ACC1_2A_' */
29863 /* SystemInitialize for Outport: '<S480>/SpeedOfForwardVehicle' */
29864 L4_MABX_B.SFunction1_o1_mb = L4_MABX_P.SpeedOfForwardVehicle_Y0;
29865
29866 /* SystemInitialize for Outport: '<S480>/DistanceToForwardVehicle' */
29867 L4_MABX_B.SFunction1_o2_lk = L4_MABX_P.DistanceToForwardVehicle_Y0;
29868
29869 /* SystemInitialize for Outport: '<S480>/AdaptiveCruiseCtrlSetSpeed' */
29870 L4_MABX_B.SFunction1_o3_hy = L4_MABX_P.AdaptiveCruiseCtrlSetSpeed_Y0;
29871
29872 /* SystemInitialize for Outport: '<S480>/AdaptiveCruiseCtrlMode' */
29873 L4_MABX_B.SFunction1_o4_ngb = L4_MABX_P.AdaptiveCruiseCtrlMode_Y0;
29874
29875 /* SystemInitialize for Outport: '<S480>/AdptveCruiseCtrlSetDistanceMode' */
29876 L4_MABX_B.SFunction1_o5_mt = L4_MABX_P.AdptveCruiseCtrlSetDistanceMode;
29877
29878 /* SystemInitialize for Outport: '<S480>/RoadCurvature' */
29879 L4_MABX_B.SFunction1_o6_jn = L4_MABX_P.RoadCurvature_Y0;
29880
29881 /* SystemInitialize for Outport: '<S480>/ACCTargetDetected' */
29882 L4_MABX_B.SFunction1_o7_ojc = L4_MABX_P.ACCTargetDetected_Y0;
29883
29884 /* SystemInitialize for Outport: '<S480>/ACCSystemShutoffWarning' */
29885 L4_MABX_B.SFunction1_o8_jl = L4_MABX_P.ACCSystemShutoffWarning_Y0;
29886
29887 /* SystemInitialize for Outport: '<S480>/ACCDistanceAlertSignal' */
29888 L4_MABX_B.SFunction1_o9_oq3 = L4_MABX_P.ACCDistanceAlertSignal_Y0;
29889
29890 /* SystemInitialize for Outport: '<S480>/ForwardCollisionWarning' */
29891 L4_MABX_B.SFunction1_o10_k = L4_MABX_P.ForwardCollisionWarning_Y0;
29892
29893 /* SystemInitialize for Outport: '<S480>/RX status' */
29894 L4_MABX_B.SFunction1_o11_a = L4_MABX_P.RXstatus_Y0_c;
29895
29896 /* SystemInitialize for Outport: '<S480>/RX time' */
29897 L4_MABX_B.SFunction1_o12_h = L4_MABX_P.RXtime_Y0_o;
29898
29899 /* SystemInitialize for Outport: '<S480>/RX delta time' */
29900 L4_MABX_B.SFunction1_o13_mf = L4_MABX_P.RXdeltatime_Y0_g;
29901
29902 /* End of SystemInitialize for SubSystem: '<S479>/ACC1_2A_' */
29903
29904 /* SystemInitialize for Enabled SubSystem: '<S461>/CAN_TYPE1_RX_M1_C1' */
29905 /* SystemInitialize for Outport: '<S463>/byte1' */
29906 L4_MABX_B.SFunction1_o1_p2 = L4_MABX_P.byte1_Y0;
29907
29908 /* SystemInitialize for Outport: '<S463>/byte2' */
29909 L4_MABX_B.SFunction1_o2_kb = L4_MABX_P.byte2_Y0;
29910
29911 /* SystemInitialize for Outport: '<S463>/byte3' */
29912 L4_MABX_B.SFunction1_o3_gs = L4_MABX_P.byte3_Y0;
29913
29914 /* SystemInitialize for Outport: '<S463>/byte4' */
29915 L4_MABX_B.SFunction1_o4_de = L4_MABX_P.byte4_Y0;
29916
29917 /* SystemInitialize for Outport: '<S463>/byte5' */
29918 L4_MABX_B.SFunction1_o5_ny = L4_MABX_P.byte5_Y0;
29919
29920 /* SystemInitialize for Outport: '<S463>/byte6' */
29921 L4_MABX_B.SFunction1_o6_kx = L4_MABX_P.byte6_Y0;
29922
29923 /* SystemInitialize for Outport: '<S463>/byte7' */
29924 L4_MABX_B.SFunction1_o7_jm = L4_MABX_P.byte7_Y0;
29925
29926 /* SystemInitialize for Outport: '<S463>/byte8' */
29927 L4_MABX_B.SFunction1_o8_kk = L4_MABX_P.byte8_Y0;
29928
29929 /* SystemInitialize for Outport: '<S463>/RX status' */
29930 L4_MABX_B.SFunction1_o9_ca = L4_MABX_P.RXstatus_Y0;
29931
29932 /* SystemInitialize for Outport: '<S463>/RX time' */
29933 L4_MABX_B.SFunction1_o10_n2 = L4_MABX_P.RXtime_Y0;
29934
29935 /* SystemInitialize for Outport: '<S463>/RX delta time' */
29936 L4_MABX_B.SFunction1_o11_e3 = L4_MABX_P.RXdeltatime_Y0;
29937
29938 /* End of SystemInitialize for SubSystem: '<S461>/CAN_TYPE1_RX_M1_C1' */
29939
29940 /* SystemInitialize for Enabled SubSystem: '<S455>/Decode_TPCM_BAM' */
29941 /* SystemInitialize for Outport: '<S673>/Out' */
29942 L4_MABX_B.SPN2556_ControlByte_f = (uint8_T)L4_MABX_P.Out_Y0_n;
29943 L4_MABX_B.DataType_kq = (uint16_T)L4_MABX_P.Out_Y0_n;
29944 L4_MABX_B.SPN2568_TotalNumberOfPackets = (uint8_T)L4_MABX_P.Out_Y0_n;
29945 L4_MABX_B.DataType_pu = (uint32_T)L4_MABX_P.Out_Y0_n;
29946
29947 /* End of SystemInitialize for SubSystem: '<S455>/Decode_TPCM_BAM' */
29948
29949 /* SystemInitialize for Enabled SubSystem: '<S470>/CAN_TYPE1_RX_M1_C1' */
29950 /* SystemInitialize for Outport: '<S472>/byte1' */
29951 L4_MABX_B.SFunction1_o1_lz = L4_MABX_P.byte1_Y0_e;
29952
29953 /* SystemInitialize for Outport: '<S472>/byte2' */
29954 L4_MABX_B.SFunction1_o2_db = L4_MABX_P.byte2_Y0_j;
29955
29956 /* SystemInitialize for Outport: '<S472>/byte3' */
29957 L4_MABX_B.SFunction1_o3_on = L4_MABX_P.byte3_Y0_c;
29958
29959 /* SystemInitialize for Outport: '<S472>/byte4' */
29960 L4_MABX_B.SFunction1_o4_hb = L4_MABX_P.byte4_Y0_o;
29961
29962 /* SystemInitialize for Outport: '<S472>/byte5' */
29963 L4_MABX_B.SFunction1_o5_ir = L4_MABX_P.byte5_Y0_f;
29964
29965 /* SystemInitialize for Outport: '<S472>/byte6' */
29966 L4_MABX_B.SFunction1_o6_bs = L4_MABX_P.byte6_Y0_g;
29967
29968 /* SystemInitialize for Outport: '<S472>/byte7' */
29969 L4_MABX_B.SFunction1_o7_oo = L4_MABX_P.byte7_Y0_h;
29970
29971 /* SystemInitialize for Outport: '<S472>/byte8' */
29972 L4_MABX_B.SFunction1_o8_o = L4_MABX_P.byte8_Y0_a;
29973
29974 /* SystemInitialize for Outport: '<S472>/RX status' */
29975 L4_MABX_B.SFunction1_o9_e = L4_MABX_P.RXstatus_Y0_b;
29976
29977 /* SystemInitialize for Outport: '<S472>/RX time' */
29978 L4_MABX_B.SFunction1_o10_is = L4_MABX_P.RXtime_Y0_m;
29979
29980 /* SystemInitialize for Outport: '<S472>/RX delta time' */
29981 L4_MABX_B.SFunction1_o11_c = L4_MABX_P.RXdeltatime_Y0_n;
29982
29983 /* End of SystemInitialize for SubSystem: '<S470>/CAN_TYPE1_RX_M1_C1' */
29984
29985 /* SystemInitialize for S-Function (rti_commonblock): '<S814>/S-Function1' incorporates:
29986 * SubSystem: '<S403>/IncrementTimer'
29987 */
29988 L4_MABX_IncrementTimer_Init();
29989
29990 /* End of SystemInitialize for S-Function (rti_commonblock): '<S814>/S-Function1' */
29991
29992 /* SystemInitialize for Enabled SubSystem: '<S422>/CAN_RX_EC1_00' */
29993 /* SystemInitialize for Enabled SubSystem: '<S506>/Decode' */
29994 /* InitializeConditions for UnitDelay: '<S509>/Unit_Delay' */
29995 L4_MABX_DW.Unit_Delay_DSTATE_g = L4_MABX_P.Unit_Delay_InitialCondition_m;
29996 for (i = 0; i < 39; i++) {
29997 /* InitializeConditions for UnitDelay: '<S506>/Unit Delay' */
29998 L4_MABX_DW.UnitDelay_DSTATE_ir[i] =
29999 L4_MABX_P.UnitDelay_InitialCondition_h0[i];
30000
30001 /* SystemInitialize for Outport: '<S509>/RawData' */
30002 L4_MABX_B.Inport_d[i] = L4_MABX_P.RawData_Y0;
30003 }
30004
30005 /* SystemInitialize for Outport: '<S509>/RX_time' */
30006 L4_MABX_B.timeStamp_d = L4_MABX_P.RX_time_Y0;
30007
30008 /* SystemInitialize for Outport: '<S509>/RX_delta_time' */
30009 L4_MABX_B.Subtract_kz = L4_MABX_P.RX_delta_time_Y0;
30010
30011 /* End of SystemInitialize for SubSystem: '<S506>/Decode' */
30012
30013 /* SystemInitialize for Outport: '<S506>/RX_status' */
30014 L4_MABX_B.RX_status_gx = L4_MABX_P.RX_status_Y0;
30015
30016 /* End of SystemInitialize for SubSystem: '<S422>/CAN_RX_EC1_00' */
30017
30018 /* SystemInitialize for Enabled SubSystem: '<S628>/VDC1_0B_' */
30019 /* SystemInitialize for Outport: '<S629>/VDCInformationSignal' */
30020 L4_MABX_B.SFunction1_o1_ku = L4_MABX_P.VDCInformationSignal_Y0;
30021
30022 /* SystemInitialize for Outport: '<S629>/VDCFullyOperational' */
30023 L4_MABX_B.SFunction1_o2_cj = L4_MABX_P.VDCFullyOperational_Y0;
30024
30025 /* SystemInitialize for Outport: '<S629>/VDCBrakeLightRq' */
30026 L4_MABX_B.SFunction1_o3_f = L4_MABX_P.VDCBrakeLightRq_Y0;
30027
30028 /* SystemInitialize for Outport: '<S629>/ROPEngCtrlActive' */
30029 L4_MABX_B.SFunction1_o4_i3 = L4_MABX_P.ROPEngCtrlActive_Y0;
30030
30031 /* SystemInitialize for Outport: '<S629>/ROPBrakeCtrlActive' */
30032 L4_MABX_B.SFunction1_o5_o = L4_MABX_P.ROPBrakeCtrlActive_Y0;
30033
30034 /* SystemInitialize for Outport: '<S629>/YCEngCtrlActive' */
30035 L4_MABX_B.SFunction1_o6_n = L4_MABX_P.YCEngCtrlActive_Y0;
30036
30037 /* SystemInitialize for Outport: '<S629>/YCBrakeCtrlActive' */
30038 L4_MABX_B.SFunction1_o7_c = L4_MABX_P.YCBrakeCtrlActive_Y0;
30039
30040 /* SystemInitialize for Outport: '<S629>/RX status' */
30041 L4_MABX_B.SFunction1_o8_p = L4_MABX_P.RXstatus_Y0_de;
30042
30043 /* SystemInitialize for Outport: '<S629>/RX time' */
30044 L4_MABX_B.SFunction1_o9_p = L4_MABX_P.RXtime_Y0_lm;
30045
30046 /* SystemInitialize for Outport: '<S629>/RX delta time' */
30047 L4_MABX_B.SFunction1_o10 = L4_MABX_P.RXdeltatime_Y0_hq;
30048
30049 /* End of SystemInitialize for SubSystem: '<S628>/VDC1_0B_' */
30050
30051 /* SystemInitialize for Enabled SubSystem: '<S630>/VDC2_0B1' */
30052 /* SystemInitialize for Outport: '<S631>/SteerWheelAngle' */
30053 SteerWheelAngle = L4_MABX_P.SteerWheelAngle_Y0;
30054
30055 /* SystemInitialize for Outport: '<S631>/SteerWheelTurnCounter' */
30056 L4_MABX_B.SFunction1_o2_n = L4_MABX_P.SteerWheelTurnCounter_Y0;
30057
30058 /* SystemInitialize for Outport: '<S631>/SteerWheelAngleSensorType' */
30059 L4_MABX_B.SFunction1_o3_kg = L4_MABX_P.SteerWheelAngleSensorType_Y0;
30060
30061 /* SystemInitialize for Outport: '<S631>/YawRate' */
30062 YawRate = L4_MABX_P.YawRate_Y0;
30063
30064 /* SystemInitialize for Outport: '<S631>/LateralAcceleration' */
30065 L4_MABX_B.SFunction1_o5_j = L4_MABX_P.LateralAcceleration_Y0;
30066
30067 /* SystemInitialize for Outport: '<S631>/LongitudinalAcceleration' */
30068 SPN1810_LongitudinalAcceleration = L4_MABX_P.LongitudinalAcceleration_Y0;
30069
30070 /* SystemInitialize for Outport: '<S631>/RX status' */
30071 L4_MABX_B.SFunction1_o7_d = L4_MABX_P.RXstatus_Y0_gs;
30072
30073 /* SystemInitialize for Outport: '<S631>/RX time' */
30074 L4_MABX_B.SFunction1_o8_n = L4_MABX_P.RXtime_Y0_n5;
30075
30076 /* SystemInitialize for Outport: '<S631>/RX delta time' */
30077 L4_MABX_B.SFunction1_o9 = L4_MABX_P.RXdeltatime_Y0_pt;
30078
30079 /* End of SystemInitialize for SubSystem: '<S630>/VDC2_0B1' */
30080
30081 /* SystemInitialize for Enabled SubSystem: '<S445>/CAN_RX_VI_00' */
30082 /* SystemInitialize for Enabled SubSystem: '<S634>/Decode' */
30083 /* InitializeConditions for UnitDelay: '<S637>/Unit_Delay' */
30084 L4_MABX_DW.Unit_Delay_DSTATE_p = L4_MABX_P.Unit_Delay_InitialCondition_o;
30085 for (i = 0; i < 17; i++) {
30086 /* InitializeConditions for UnitDelay: '<S634>/Unit Delay' */
30087 L4_MABX_DW.UnitDelay_DSTATE_g[i] =
30088 L4_MABX_P.UnitDelay_InitialCondition_do[i];
30089
30090 /* SystemInitialize for Outport: '<S637>/RawData' */
30091 L4_MABX_B.Inport[i] = L4_MABX_P.RawData_Y0_p;
30092 }
30093
30094 /* SystemInitialize for Outport: '<S637>/RX_time' */
30095 L4_MABX_B.timeStamp = L4_MABX_P.RX_time_Y0_c;
30096
30097 /* SystemInitialize for Outport: '<S637>/RX_delta_time' */
30098 L4_MABX_B.Subtract_cx = L4_MABX_P.RX_delta_time_Y0_a;
30099
30100 /* End of SystemInitialize for SubSystem: '<S634>/Decode' */
30101
30102 /* SystemInitialize for Outport: '<S634>/RX_status' */
30103 L4_MABX_B.RX_status_lz = L4_MABX_P.RX_status_Y0_d;
30104
30105 /* End of SystemInitialize for SubSystem: '<S445>/CAN_RX_VI_00' */
30106
30107 /* SystemInitialize for Enabled SubSystem: '<S616>/SSI2_031' */
30108 /* SystemInitialize for Outport: '<S617>/PitchAngleExRange' */
30109 L4_MABX_B.SFunction1_o1_bp = L4_MABX_P.PitchAngleExRange_Y0;
30110
30111 /* SystemInitialize for Outport: '<S617>/RollAngleExRange' */
30112 L4_MABX_B.SFunction1_o2_aw = L4_MABX_P.RollAngleExRange_Y0;
30113
30114 /* SystemInitialize for Outport: '<S617>/PitchAngleExRangeCompensation' */
30115 L4_MABX_B.SFunction1_o3_bj = L4_MABX_P.PitchAngleExRangeCompensation_Y;
30116
30117 /* SystemInitialize for Outport: '<S617>/PitchAngleExRangeFigureOfMerit' */
30118 L4_MABX_B.SFunction1_o4_he = L4_MABX_P.PitchAngleExRangeFigureOfMerit_;
30119
30120 /* SystemInitialize for Outport: '<S617>/RollAngleExRangeCompensation' */
30121 L4_MABX_B.SFunction1_o5_pa = L4_MABX_P.RollAngleExRangeCompensation_Y0;
30122
30123 /* SystemInitialize for Outport: '<S617>/RollAngleExRangeFigureOfMerit' */
30124 L4_MABX_B.SFunction1_o6_gm = L4_MABX_P.RollAngleExRangeFigureOfMerit_Y;
30125
30126 /* SystemInitialize for Outport: '<S617>/RllAndPtchExRngMsurementLatency' */
30127 L4_MABX_B.SFunction1_o7_h = L4_MABX_P.RllAndPtchExRngMsurementLatency;
30128
30129 /* SystemInitialize for Outport: '<S617>/RX status' */
30130 L4_MABX_B.SFunction1_o8_ge = L4_MABX_P.RXstatus_Y0_n0;
30131
30132 /* SystemInitialize for Outport: '<S617>/RX time' */
30133 L4_MABX_B.SFunction1_o9_c = L4_MABX_P.RXtime_Y0_ai;
30134
30135 /* SystemInitialize for Outport: '<S617>/RX delta time' */
30136 L4_MABX_B.SFunction1_o10_m = L4_MABX_P.RXdeltatime_Y0_g2;
30137
30138 /* End of SystemInitialize for SubSystem: '<S616>/SSI2_031' */
30139
30140 /* SystemInitialize for Enabled SubSystem: '<S607>/PX2_LanePosEst' */
30141 /* SystemInitialize for Outport: '<S610>/PX2_LanePosEstAngle' */
30142 L4_MABX_B.SFunction1_o1_g3 = L4_MABX_P.PX2_LanePosEstAngle_Y0;
30143
30144 /* SystemInitialize for Outport: '<S610>/PX2_LanePosEstNumPoints' */
30145 L4_MABX_B.SFunction1_o2_lf = L4_MABX_P.PX2_LanePosEstNumPoints_Y0;
30146
30147 /* SystemInitialize for Outport: '<S610>/PX2_LanePosEstPosition' */
30148 L4_MABX_B.SFunction1_o3_gp = L4_MABX_P.PX2_LanePosEstPosition_Y0;
30149
30150 /* SystemInitialize for Outport: '<S610>/PX2_LanePosEstNumLanes' */
30151 L4_MABX_B.SFunction1_o4_hg2 = L4_MABX_P.PX2_LanePosEstNumLanes_Y0;
30152
30153 /* SystemInitialize for Outport: '<S610>/RX status' */
30154 L4_MABX_B.SFunction1_o5_eu = L4_MABX_P.RXstatus_Y0_k;
30155
30156 /* SystemInitialize for Outport: '<S610>/RX time' */
30157 L4_MABX_B.SFunction1_o6_hm = L4_MABX_P.RXtime_Y0_dr;
30158
30159 /* SystemInitialize for Outport: '<S610>/RX delta time' */
30160 L4_MABX_B.SFunction1_o7_b = L4_MABX_P.RXdeltatime_Y0_fr;
30161
30162 /* End of SystemInitialize for SubSystem: '<S607>/PX2_LanePosEst' */
30163
30164 /* SystemInitialize for Enabled SubSystem: '<S614>/Bendix_Prop2C2_Status_30' */
30165 /* SystemInitialize for Outport: '<S615>/PressureP4' */
30166 L4_MABX_B.SFunction1_o1_i4 = L4_MABX_P.PressureP4_Y0;
30167
30168 /* SystemInitialize for Outport: '<S615>/PressureP1' */
30169 L4_MABX_B.SFunction1_o2_j5 = L4_MABX_P.PressureP1_Y0;
30170
30171 /* SystemInitialize for Outport: '<S615>/PressureP21' */
30172 L4_MABX_B.SFunction1_o3_fk = L4_MABX_P.PressureP21_Y0;
30173
30174 /* SystemInitialize for Outport: '<S615>/PressureP22' */
30175 L4_MABX_B.SFunction1_o4_as = L4_MABX_P.PressureP22_Y0;
30176
30177 /* SystemInitialize for Outport: '<S615>/PressureP42' */
30178 L4_MABX_B.SFunction1_o5_l = L4_MABX_P.PressureP42_Y0;
30179
30180 /* SystemInitialize for Outport: '<S615>/XPR1ControlStatus' */
30181 L4_MABX_B.SFunction1_o6_h = L4_MABX_P.XPR1ControlStatus_Y0;
30182
30183 /* SystemInitialize for Outport: '<S615>/XPR2ControlStatus' */
30184 L4_MABX_B.SFunction1_o7_p = L4_MABX_P.XPR2ControlStatus_Y0;
30185
30186 /* SystemInitialize for Outport: '<S615>/XPR3ControlStatus' */
30187 L4_MABX_B.SFunction1_o8_pt = L4_MABX_P.XPR3ControlStatus_Y0;
30188
30189 /* SystemInitialize for Outport: '<S615>/XPRErrorState' */
30190 L4_MABX_B.SFunction1_o9_m5 = L4_MABX_P.XPRErrorState_Y0;
30191
30192 /* SystemInitialize for Outport: '<S615>/XPRControlMode' */
30193 L4_MABX_B.SFunction1_o10_g = L4_MABX_P.XPRControlMode_Y0;
30194
30195 /* SystemInitialize for Outport: '<S615>/RX status' */
30196 L4_MABX_B.SFunction1_o11_f = L4_MABX_P.RXstatus_Y0_io;
30197
30198 /* SystemInitialize for Outport: '<S615>/RX time' */
30199 L4_MABX_B.SFunction1_o12_f = L4_MABX_P.RXtime_Y0_ju;
30200
30201 /* SystemInitialize for Outport: '<S615>/RX delta time' */
30202 L4_MABX_B.SFunction1_o13_m = L4_MABX_P.RXdeltatime_Y0_k5;
30203
30204 /* End of SystemInitialize for SubSystem: '<S614>/Bendix_Prop2C2_Status_30' */
30205
30206 /* SystemInitialize for Enabled SubSystem: '<S564>/PropB_REAX_2_13' */
30207 /* SystemInitialize for Outport: '<S566>/PropB_REAX_2_ActualHandwheelPos' */
30208 L4_MABX_B.SFunction1_o1_ck = L4_MABX_P.PropB_REAX_2_ActualHandwheelPos;
30209
30210 /* SystemInitialize for Outport: '<S566>/PropB_REAX_2_EchoedStrWhlPos' */
30211 L4_MABX_B.SFunction1_o2_dzy = L4_MABX_P.PropB_REAX_2_EchoedStrWhlPos_Y0;
30212
30213 /* SystemInitialize for Outport: '<S566>/RX status' */
30214 L4_MABX_B.SFunction1_o3_mp = L4_MABX_P.RXstatus_Y0_ce;
30215
30216 /* SystemInitialize for Outport: '<S566>/RX time' */
30217 L4_MABX_B.SFunction1_o4_mo = L4_MABX_P.RXtime_Y0_ci;
30218
30219 /* SystemInitialize for Outport: '<S566>/RX delta time' */
30220 L4_MABX_B.SFunction1_o5_cb = L4_MABX_P.RXdeltatime_Y0_i;
30221
30222 /* End of SystemInitialize for SubSystem: '<S564>/PropB_REAX_2_13' */
30223
30224 /* SystemInitialize for Enabled SubSystem: '<S565>/PropB_REAX_2_13' */
30225 /* SystemInitialize for Outport: '<S567>/PropB_REAX_2_ActualHandwheelPos' */
30226 L4_MABX_B.SFunction1_o1_pd = L4_MABX_P.PropB_REAX_2_ActualHandwheelP_h;
30227
30228 /* SystemInitialize for Outport: '<S567>/PropB_REAX_2_EchoedStrWhlPos' */
30229 L4_MABX_B.SFunction1_o2_ns = L4_MABX_P.PropB_REAX_2_EchoedStrWhlPos__k;
30230
30231 /* SystemInitialize for Outport: '<S567>/RX status' */
30232 L4_MABX_B.SFunction1_o3_dx = L4_MABX_P.RXstatus_Y0_dz;
30233
30234 /* SystemInitialize for Outport: '<S567>/RX time' */
30235 L4_MABX_B.SFunction1_o4_dw = L4_MABX_P.RXtime_Y0_f;
30236
30237 /* SystemInitialize for Outport: '<S567>/RX delta time' */
30238 L4_MABX_B.SFunction1_o5_m = L4_MABX_P.RXdeltatime_Y0_en;
30239
30240 /* End of SystemInitialize for SubSystem: '<S565>/PropB_REAX_2_13' */
30241
30242 /* SystemInitialize for Atomic SubSystem: '<S65>/Task_10ms' */
30243 /* InitializeConditions for RateTransition: '<S81>/TmpRTBAtSignal Conversion1Inport1' */
30244 L4_MABX_DW.TmpRTBAtSignalConversion1Inport =
30245 L4_MABX_P.TmpRTBAtSignalConversion1Inport;
30246
30247 /* InitializeConditions for UnitDelay: '<S376>/Unit_Delay' */
30248 L4_MABX_DW.Unit_Delay_DSTATE_cx = L4_MABX_P.Unit_Delay_InitialCondition_b1;
30249
30250 /* InitializeConditions for UnitDelay: '<S377>/Unit_Delay' */
30251 L4_MABX_DW.Unit_Delay_DSTATE_d0 = L4_MABX_P.Unit_Delay_InitialCondition_g;
30252
30253 /* InitializeConditions for UnitDelay: '<S334>/Unit_Delay' */
30254 L4_MABX_DW.Unit_Delay_DSTATE_e = L4_MABX_P.Unit_Delay_InitialCondition_i;
30255
30256 /* InitializeConditions for UnitDelay: '<S381>/FixPt Unit Delay2' */
30257 L4_MABX_DW.FixPtUnitDelay2_DSTATE_a =
30258 L4_MABX_P.FixPtUnitDelay2_InitialCondi_f5;
30259
30260 /* InitializeConditions for UnitDelay: '<S381>/FixPt Unit Delay1' */
30261 L4_MABX_DW.FixPtUnitDelay1_DSTATE_h =
30262 L4_MABX_P.FixPtUnitDelay1_InitialCondit_l;
30263
30264 /* InitializeConditions for UnitDelay: '<S378>/Unit_Delay' */
30265 L4_MABX_DW.Unit_Delay_DSTATE_m = L4_MABX_P.Unit_Delay_InitialCondition_hae;
30266
30267 /* InitializeConditions for UnitDelay: '<S365>/Unit_Delay' */
30268 L4_MABX_DW.Unit_Delay_DSTATE_iy = L4_MABX_P.Unit_Delay_InitialCondition_a;
30269
30270 /* InitializeConditions for UnitDelay: '<S366>/Unit_Delay' */
30271 L4_MABX_DW.Unit_Delay_DSTATE_mv = L4_MABX_P.Unit_Delay_InitialCondition_gt;
30272
30273 /* InitializeConditions for UnitDelay: '<S332>/Unit_Delay' */
30274 L4_MABX_DW.Unit_Delay_DSTATE_gr = L4_MABX_P.Unit_Delay_InitialCondition_fb;
30275
30276 /* InitializeConditions for UnitDelay: '<S370>/FixPt Unit Delay2' */
30277 L4_MABX_DW.FixPtUnitDelay2_DSTATE_ip =
30278 L4_MABX_P.FixPtUnitDelay2_InitialCondi_po;
30279
30280 /* InitializeConditions for UnitDelay: '<S370>/FixPt Unit Delay1' */
30281 L4_MABX_DW.FixPtUnitDelay1_DSTATE_hq =
30282 L4_MABX_P.FixPtUnitDelay1_InitialCondit_d;
30283
30284 /* InitializeConditions for UnitDelay: '<S367>/Unit_Delay' */
30285 L4_MABX_DW.Unit_Delay_DSTATE_b = L4_MABX_P.Unit_Delay_InitialCondition_c;
30286
30287 /* InitializeConditions for RateTransition: '<S81>/TmpRTBAtSignal Conversion3Inport1' */
30288 L4_MABX_DW.TmpRTBAtSignalConversion3Inport =
30289 L4_MABX_P.TmpRTBAtSignalConversion3Inport;
30290
30291 /* InitializeConditions for RateTransition: '<S81>/TmpRTBAtSignal Conversion2Inport1' */
30292 L4_MABX_DW.TmpRTBAtSignalConversion2Inport =
30293 L4_MABX_P.TmpRTBAtSignalConversion2Inport;
30294
30295 /* InitializeConditions for UnitDelay: '<S347>/Unit_Delay' */
30296 L4_MABX_DW.Unit_Delay_DSTATE_bw = L4_MABX_P.Unit_Delay_InitialCondition_e;
30297
30298 /* InitializeConditions for UnitDelay: '<S349>/Unit_Delay' */
30299 L4_MABX_DW.Unit_Delay_DSTATE_k = L4_MABX_P.Unit_Delay_InitialCondition_ml;
30300
30301 /* InitializeConditions for UnitDelay: '<S358>/FixPt Unit Delay2' */
30302 L4_MABX_DW.FixPtUnitDelay2_DSTATE_fh =
30303 L4_MABX_P.FixPtUnitDelay2_InitialCondit_i;
30304
30305 /* InitializeConditions for UnitDelay: '<S358>/FixPt Unit Delay1' */
30306 L4_MABX_DW.FixPtUnitDelay1_DSTATE_l =
30307 L4_MABX_P.FixPtUnitDelay1_InitialCondit_h;
30308
30309 /* InitializeConditions for UnitDelay: '<S356>/Unit_Delay' */
30310 L4_MABX_DW.Unit_Delay_DSTATE_ps = L4_MABX_P.Unit_Delay_InitialCondition_j;
30311
30312 /* InitializeConditions for UnitDelay: '<S329>/Delay Input1' */
30313 L4_MABX_DW.DelayInput1_DSTATE[0] = L4_MABX_P.DetectChange1_vinit;
30314
30315 /* InitializeConditions for UnitDelay: '<S336>/Delay Input1' */
30316 L4_MABX_DW.DelayInput1_DSTATE_f[0] = L4_MABX_P.DetectChange1_vinit_n;
30317
30318 /* InitializeConditions for UnitDelay: '<S329>/Delay Input1' */
30319 L4_MABX_DW.DelayInput1_DSTATE[1] = L4_MABX_P.DetectChange1_vinit;
30320
30321 /* InitializeConditions for UnitDelay: '<S336>/Delay Input1' */
30322 L4_MABX_DW.DelayInput1_DSTATE_f[1] = L4_MABX_P.DetectChange1_vinit_n;
30323
30324 /* InitializeConditions for UnitDelay: '<S338>/Unit_Delay' */
30325 L4_MABX_DW.Unit_Delay_DSTATE_l = L4_MABX_P.Unit_Delay_InitialCondition_ag;
30326
30327 /* InitializeConditions for UnitDelay: '<S342>/FixPt Unit Delay2' */
30328 L4_MABX_DW.FixPtUnitDelay2_DSTATE_c =
30329 L4_MABX_P.FixPtUnitDelay2_InitialCondi_ck;
30330
30331 /* InitializeConditions for UnitDelay: '<S342>/FixPt Unit Delay1' */
30332 L4_MABX_DW.FixPtUnitDelay1_DSTATE_ej =
30333 L4_MABX_P.FixPtUnitDelay1_InitialCondit_m;
30334
30335 /* InitializeConditions for UnitDelay: '<S337>/Unit_Delay' */
30336 L4_MABX_DW.Unit_Delay_1_DSTATE_j = L4_MABX_P.Unit_Delay_1_InitialCondition;
30337 L4_MABX_DW.Unit_Delay_2_DSTATE_e = L4_MABX_P.Unit_Delay_2_InitialCondition;
30338 L4_MABX_DW.Unit_Delay_3_DSTATE_j = L4_MABX_P.Unit_Delay_3_InitialCondition;
30339
30340 /* InitializeConditions for UnitDelay: '<S335>/Unit_Delay' */
30341 L4_MABX_DW.Unit_Delay_DSTATE_f = L4_MABX_P.Unit_Delay_InitialCondition_e2;
30342
30343 /* InitializeConditions for UnitDelay: '<S101>/Unit_Delay' */
30344 L4_MABX_DW.Unit_Delay_DSTATE_eu4 = L4_MABX_P.Unit_Delay_InitialCondition_ip;
30345
30346 /* InitializeConditions for UnitDelay: '<S197>/Unit_Delay1' */
30347 L4_MABX_DW.Unit_Delay1_DSTATE_d = L4_MABX_P.Unit_Delay1_InitialCondition_f;
30348
30349 /* InitializeConditions for UnitDelay: '<S197>/Unit_Delay2' */
30350 L4_MABX_DW.Unit_Delay2_DSTATE_e = L4_MABX_P.Unit_Delay2_InitialCondition_a;
30351
30352 /* InitializeConditions for UnitDelay: '<S196>/UD' */
30353 L4_MABX_DW.UD_DSTATE = L4_MABX_P.DiscreteDerivative1_ICPrevScale;
30354
30355 /* InitializeConditions for UnitDelay: '<S314>/Unit_Delay1' */
30356 L4_MABX_DW.Unit_Delay1_DSTATE_db = L4_MABX_P.Unit_Delay1_InitialCondition_m;
30357
30358 /* InitializeConditions for UnitDelay: '<S314>/Unit_Delay2' */
30359 L4_MABX_DW.Unit_Delay2_DSTATE_d = L4_MABX_P.Unit_Delay2_InitialCondition_g;
30360
30361 /* InitializeConditions for UnitDelay: '<S313>/Delay Input1' */
30362 L4_MABX_DW.DelayInput1_DSTATE_f0 = L4_MABX_P.DetectChange_vinit;
30363
30364 /* InitializeConditions for UnitDelay: '<S315>/Unit_Delay1' */
30365 L4_MABX_DW.Unit_Delay1_DSTATE_a = L4_MABX_P.Unit_Delay1_InitialCondition_ps;
30366
30367 /* InitializeConditions for UnitDelay: '<S315>/Unit_Delay2' */
30368 L4_MABX_DW.Unit_Delay2_DSTATE_i = L4_MABX_P.Unit_Delay2_InitialCondition_ji;
30369
30370 /* InitializeConditions for UnitDelay: '<S316>/Unit_Delay1' */
30371 L4_MABX_DW.Unit_Delay1_DSTATE_p = L4_MABX_P.Unit_Delay1_InitialCondition_j;
30372
30373 /* InitializeConditions for UnitDelay: '<S316>/Unit_Delay2' */
30374 L4_MABX_DW.Unit_Delay2_DSTATE_p = L4_MABX_P.Unit_Delay2_InitialCondition_ap;
30375
30376 /* InitializeConditions for UnitDelay: '<S278>/Unit Delay' */
30377 L4_MABX_DW.UnitDelay_DSTATE_d = L4_MABX_P.UnitDelay_InitialCondition_c;
30378
30379 /* InitializeConditions for UnitDelay: '<S288>/Unit Delay' */
30380 L4_MABX_DW.UnitDelay_DSTATE_m = L4_MABX_P.UnitDelay_InitialCondition;
30381
30382 /* InitializeConditions for UnitDelay: '<S289>/Unit Delay' */
30383 L4_MABX_DW.UnitDelay_DSTATE_m0 = L4_MABX_P.UnitDelay_InitialCondition_g;
30384
30385 /* InitializeConditions for UnitDelay: '<S289>/Unit Delay1' */
30386 L4_MABX_DW.UnitDelay1_DSTATE_k = L4_MABX_P.UnitDelay1_InitialCondition;
30387
30388 /* InitializeConditions for RateTransition: '<S80>/TmpRTBAtrad2deg1Inport1' */
30389 L4_MABX_DW.TmpRTBAtrad2deg1Inport1_Buffer0 =
30390 L4_MABX_P.TmpRTBAtrad2deg1Inport1_Initial;
30391
30392 /* InitializeConditions for RateTransition: '<S80>/TmpRTBAtsignCurveOffsetInport1' */
30393 L4_MABX_DW.TmpRTBAtsignCurveOffsetInport1_ =
30394 L4_MABX_P.TmpRTBAtsignCurveOffsetInport1_;
30395
30396 /* InitializeConditions for UnitDelay: '<S283>/Unit Delay' */
30397 L4_MABX_DW.UnitDelay_DSTATE_m1 = L4_MABX_P.UnitDelay_InitialCondition_e;
30398
30399 /* InitializeConditions for RateTransition: '<S277>/TmpRTBAtAdd2Inport2' */
30400 L4_MABX_DW.TmpRTBAtAdd2Inport2_Buffer0 =
30401 L4_MABX_P.TmpRTBAtAdd2Inport2_InitialCond;
30402
30403 /* InitializeConditions for RateLimiter: '<S299>/Limit Rate Limiter' */
30404 L4_MABX_DW.PrevY = L4_MABX_P.LimitRateLimiter_IC;
30405
30406 /* InitializeConditions for DiscreteIntegrator: '<S298>/Integrator' */
30407 L4_MABX_DW.Integrator_DSTATE = L4_MABX_P.Integrator_IC;
30408 L4_MABX_DW.Integrator_PrevResetState = 2;
30409
30410 /* InitializeConditions for DiscreteIntegrator: '<S298>/Filter' */
30411 L4_MABX_DW.Filter_DSTATE = L4_MABX_P.Filter_IC;
30412 L4_MABX_DW.Filter_PrevResetState = 2;
30413
30414 /* InitializeConditions for UnitDelay: '<S300>/Delay Input' */
30415 L4_MABX_DW.DelayInput_DSTATE = L4_MABX_P.TransferFcnLeadorLag_ICPrevInpu;
30416
30417 /* InitializeConditions for UnitDelay: '<S300>/Delay Output' */
30418 L4_MABX_DW.DelayOutput_DSTATE = L4_MABX_P.TransferFcnLeadorLag_ICPrevOutp;
30419
30420 /* InitializeConditions for DiscreteTransferFcn: '<S274>/Error 5Hz LPF' */
30421 L4_MABX_DW.Error5HzLPF_states[0] = L4_MABX_P.Error5HzLPF_InitialStates;
30422
30423 /* InitializeConditions for DiscreteTransferFcn: '<S274>/5Hz LPF' */
30424 L4_MABX_DW.uHzLPF_states[0] = L4_MABX_P.uHzLPF_InitialStates;
30425
30426 /* InitializeConditions for DiscreteTransferFcn: '<S274>/Error 5Hz LPF' */
30427 L4_MABX_DW.Error5HzLPF_states[1] = L4_MABX_P.Error5HzLPF_InitialStates;
30428
30429 /* InitializeConditions for DiscreteTransferFcn: '<S274>/5Hz LPF' */
30430 L4_MABX_DW.uHzLPF_states[1] = L4_MABX_P.uHzLPF_InitialStates;
30431
30432 /* InitializeConditions for DiscreteTransferFcn: '<S274>/Error 5Hz LPF' */
30433 L4_MABX_DW.Error5HzLPF_states[2] = L4_MABX_P.Error5HzLPF_InitialStates;
30434
30435 /* InitializeConditions for DiscreteTransferFcn: '<S274>/5Hz LPF' */
30436 L4_MABX_DW.uHzLPF_states[2] = L4_MABX_P.uHzLPF_InitialStates;
30437
30438 /* InitializeConditions for DiscreteIntegrator: '<S292>/Discrete-Time Integrator' */
30439 L4_MABX_DW.DiscreteTimeIntegrator_IC_LOADI = 1U;
30440 L4_MABX_DW.DiscreteTimeIntegrator_PrevRese = 2;
30441
30442 /* InitializeConditions for UnitDelay: '<S308>/Delay Input2' */
30443 L4_MABX_DW.DelayInput2_DSTATE = L4_MABX_P.DelayInput2_InitialCondition;
30444
30445 /* InitializeConditions for DiscreteIntegrator: '<S80>/Discrete-Time Integrator' */
30446 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e =
30447 L4_MABX_P.DiscreteTimeIntegrator_IC;
30448 L4_MABX_DW.DiscreteTimeIntegrator_PrevRe_e = 0;
30449
30450 /* InitializeConditions for UnitDelay: '<S80>/Unit Delay' */
30451 L4_MABX_DW.UnitDelay_DSTATE_e = L4_MABX_P.UnitDelay_InitialCondition_g1;
30452
30453 /* InitializeConditions for UnitDelay: '<S360>/FixPt Unit Delay2' */
30454 L4_MABX_DW.FixPtUnitDelay2_DSTATE_aw =
30455 L4_MABX_P.FixPtUnitDelay2_InitialCondit_g;
30456
30457 /* InitializeConditions for UnitDelay: '<S360>/FixPt Unit Delay1' */
30458 L4_MABX_DW.FixPtUnitDelay1_DSTATE_p =
30459 L4_MABX_P.FixPtUnitDelay1_InitialCondi_dl;
30460
30461 /* InitializeConditions for UnitDelay: '<S361>/FixPt Unit Delay2' */
30462 L4_MABX_DW.FixPtUnitDelay2_DSTATE_g =
30463 L4_MABX_P.FixPtUnitDelay2_InitialCondi_pz;
30464
30465 /* InitializeConditions for UnitDelay: '<S361>/FixPt Unit Delay1' */
30466 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g =
30467 L4_MABX_P.FixPtUnitDelay1_InitialCondi_ol;
30468
30469 /* InitializeConditions for UnitDelay: '<S355>/Unit_Delay' */
30470 L4_MABX_DW.Unit_Delay_DSTATE_j = L4_MABX_P.Unit_Delay_InitialCondition_b;
30471
30472 /* SystemInitialize for Enabled SubSystem: '<S79>/Throttle_controller_gov' */
30473 /* InitializeConditions for UnitDelay: '<S214>/Unit_Delay1' */
30474 L4_MABX_DW.Unit_Delay1_DSTATE_p1 = L4_MABX_P.Unit_Delay1_InitialCondition_o;
30475
30476 /* InitializeConditions for UnitDelay: '<S214>/Unit_Delay' */
30477 L4_MABX_DW.Unit_Delay_DSTATE_lq = L4_MABX_P.Unit_Delay_InitialCondition_b2;
30478
30479 /* InitializeConditions for UnitDelay: '<S241>/Unit_Delay' */
30480 L4_MABX_DW.Unit_Delay_DSTATE_be = L4_MABX_P.Unit_Delay_InitialCondition_lj;
30481
30482 /* InitializeConditions for UnitDelay: '<S261>/Unit_Delay1' */
30483 L4_MABX_DW.Unit_Delay1_DSTATE_h = L4_MABX_P.Unit_Delay1_InitialCondition_a;
30484
30485 /* InitializeConditions for UnitDelay: '<S262>/Unit_Delay' */
30486 L4_MABX_DW.Unit_Delay_DSTATE_fi = L4_MABX_P.Unit_Delay_InitialCondition_bm;
30487
30488 /* InitializeConditions for UnitDelay: '<S266>/FixPt Unit Delay2' */
30489 L4_MABX_DW.FixPtUnitDelay2_DSTATE_gq =
30490 L4_MABX_P.FixPtUnitDelay2_InitialCondit_a;
30491
30492 /* InitializeConditions for UnitDelay: '<S266>/FixPt Unit Delay1' */
30493 L4_MABX_DW.FixPtUnitDelay1_DSTATE_a0 =
30494 L4_MABX_P.FixPtUnitDelay1_InitialCondit_o;
30495
30496 /* InitializeConditions for UnitDelay: '<S261>/Unit_Delay2' */
30497 L4_MABX_DW.Unit_Delay2_DSTATE_m = L4_MABX_P.Unit_Delay2_InitialCondition_j;
30498
30499 /* InitializeConditions for UnitDelay: '<S216>/Unit_Delay' */
30500 L4_MABX_DW.Unit_Delay_DSTATE_fz = L4_MABX_P.Unit_Delay_InitialCondition_kg;
30501
30502 /* SystemInitialize for Enabled SubSystem: '<S238>/Calculate_D_term' */
30503 L4_MA_Calculate_D_term_Init(&L4_MABX_B.Calculate_D_term_h,
30504 &L4_MABX_DW.Calculate_D_term_h, &L4_MABX_P.Calculate_D_term_h);
30505
30506 /* End of SystemInitialize for SubSystem: '<S238>/Calculate_D_term' */
30507
30508 /* SystemInitialize for Enabled SubSystem: '<S238>/Calculate_I_term' */
30509 L4_MA_Calculate_I_term_Init(&L4_MABX_B.Calculate_I_term_n,
30510 &L4_MABX_DW.Calculate_I_term_n, &L4_MABX_P.Calculate_I_term_n);
30511
30512 /* End of SystemInitialize for SubSystem: '<S238>/Calculate_I_term' */
30513
30514 /* SystemInitialize for Outport: '<S206>/PID_output' */
30515 L4_MABX_B.If_Then_Else_pi.Switch = L4_MABX_P.PID_output_Y0_c;
30516
30517 /* SystemInitialize for Outport: '<S206>/PID_output_unlim' */
30518 L4_MABX_B.Add_ds = L4_MABX_P.PID_output_unlim_Y0;
30519
30520 /* SystemInitialize for Outport: '<S206>/PID_control_error' */
30521 L4_MABX_B.If_Then_Else_k2.Switch = L4_MABX_P.PID_control_error_Y0;
30522
30523 /* SystemInitialize for Outport: '<S206>/PID_p_term' */
30524 L4_MABX_B.Product_i = L4_MABX_P.PID_p_term_Y0;
30525
30526 /* SystemInitialize for Outport: '<S206>/PID_i_term' */
30527 L4_MABX_B.PID_i_term_c = L4_MABX_P.PID_i_term_Y0;
30528
30529 /* SystemInitialize for Outport: '<S206>/PID_d_term' */
30530 L4_MABX_B.PID_d_term_c = L4_MABX_P.PID_d_term_Y0;
30531
30532 /* SystemInitialize for Outport: '<S206>/PID_hold_i_term_f' */
30533 L4_MABX_B.PID_hold_i_term_f_b = L4_MABX_P.PID_hold_i_term_f_Y0;
30534
30535 /* End of SystemInitialize for SubSystem: '<S79>/Throttle_controller_gov' */
30536
30537 /* SystemInitialize for Enabled SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' */
30538 /* InitializeConditions for UnitDelay: '<S178>/Unit_Delay' */
30539 L4_MABX_DW.Unit_Delay_DSTATE_o = L4_MABX_P.Unit_Delay_InitialCondition_l;
30540
30541 /* InitializeConditions for UnitDelay: '<S188>/Unit_Delay' */
30542 L4_MABX_DW.Unit_Delay_DSTATE_a = L4_MABX_P.Unit_Delay_InitialCondition_cl;
30543
30544 /* InitializeConditions for UnitDelay: '<S192>/FixPt Unit Delay2' */
30545 L4_MABX_DW.FixPtUnitDelay2_DSTATE_la =
30546 L4_MABX_P.FixPtUnitDelay2_InitialCondit_f;
30547
30548 /* InitializeConditions for UnitDelay: '<S192>/FixPt Unit Delay1' */
30549 L4_MABX_DW.FixPtUnitDelay1_DSTATE_ds =
30550 L4_MABX_P.FixPtUnitDelay1_InitialCondit_j;
30551
30552 /* InitializeConditions for UnitDelay: '<S189>/Unit_Delay' */
30553 L4_MABX_DW.Unit_Delay_DSTATE_om = L4_MABX_P.Unit_Delay_InitialCondition_ha;
30554
30555 /* SystemInitialize for Outport: '<S178>/Shift_interlock_brake_press_target_kpa' */
30556 L4_MABX_B.If_Then_Else_il.Switch = L4_MABX_P.Shift_interlock_brake_press_tar;
30557
30558 /* SystemInitialize for Outport: '<S178>/F_Shift_interlock_conditions_met' */
30559 L4_MABX_B.F_Shift_interlock_conditions_me =
30560 L4_MABX_P.F_Shift_interlock_conditions_me;
30561
30562 /* End of SystemInitialize for SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' */
30563
30564 /* SystemInitialize for Enabled SubSystem: '<S99>/Determine_brake_hold_pressure_target' */
30565 /* InitializeConditions for UnitDelay: '<S177>/Unit_Delay' */
30566 L4_MABX_DW.Unit_Delay_DSTATE_c = L4_MABX_P.Unit_Delay_InitialCondition_d;
30567
30568 /* InitializeConditions for UnitDelay: '<S181>/Unit_Delay' */
30569 L4_MABX_DW.Unit_Delay_DSTATE_or = L4_MABX_P.Unit_Delay_InitialCondition_fy;
30570
30571 /* InitializeConditions for UnitDelay: '<S185>/FixPt Unit Delay2' */
30572 L4_MABX_DW.FixPtUnitDelay2_DSTATE_je =
30573 L4_MABX_P.FixPtUnitDelay2_InitialCondit_e;
30574
30575 /* InitializeConditions for UnitDelay: '<S185>/FixPt Unit Delay1' */
30576 L4_MABX_DW.FixPtUnitDelay1_DSTATE_b0 =
30577 L4_MABX_P.FixPtUnitDelay1_InitialCondit_p;
30578
30579 /* InitializeConditions for UnitDelay: '<S182>/Unit_Delay' */
30580 L4_MABX_DW.Unit_Delay_DSTATE_oj = L4_MABX_P.Unit_Delay_InitialCondition_k;
30581
30582 /* SystemInitialize for Outport: '<S177>/Brake_hold_brake_press_target_kpa' */
30583 L4_MABX_B.If_Then_Else_gj.Switch = L4_MABX_P.Brake_hold_brake_press_target_k;
30584
30585 /* SystemInitialize for Outport: '<S177>/F_Brake_hold_conditions_met' */
30586 L4_MABX_B.F_Brake_hold_conditions_met =
30587 L4_MABX_P.F_Brake_hold_conditions_met_Y0;
30588
30589 /* End of SystemInitialize for SubSystem: '<S99>/Determine_brake_hold_pressure_target' */
30590
30591 /* SystemInitialize for Enabled SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' */
30592 /* InitializeConditions for UnitDelay: '<S105>/Unit_Delay' */
30593 L4_MABX_DW.Unit_Delay_DSTATE_d = L4_MABX_P.Unit_Delay_InitialCondition;
30594
30595 /* InitializeConditions for UnitDelay: '<S109>/Unit_Delay' */
30596 L4_MABX_DW.Unit_Delay_DSTATE_omj = L4_MABX_P.Unit_Delay_InitialCondition_lt;
30597
30598 /* InitializeConditions for UnitDelay: '<S129>/Unit_Delay1' */
30599 L4_MABX_DW.Unit_Delay1_DSTATE_b = L4_MABX_P.Unit_Delay1_InitialCondition;
30600
30601 /* InitializeConditions for UnitDelay: '<S130>/Unit_Delay' */
30602 L4_MABX_DW.Unit_Delay_DSTATE_h4 = L4_MABX_P.Unit_Delay_InitialCondition_og;
30603
30604 /* InitializeConditions for UnitDelay: '<S134>/FixPt Unit Delay2' */
30605 L4_MABX_DW.FixPtUnitDelay2_DSTATE_gm =
30606 L4_MABX_P.FixPtUnitDelay2_InitialConditio;
30607
30608 /* InitializeConditions for UnitDelay: '<S134>/FixPt Unit Delay1' */
30609 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g1 =
30610 L4_MABX_P.FixPtUnitDelay1_InitialConditio;
30611
30612 /* InitializeConditions for UnitDelay: '<S129>/Unit_Delay2' */
30613 L4_MABX_DW.Unit_Delay2_DSTATE_dy = L4_MABX_P.Unit_Delay2_InitialCondition;
30614
30615 /* InitializeConditions for UnitDelay: '<S104>/Unit_Delay' */
30616 L4_MABX_DW.Unit_Delay_DSTATE_i = L4_MABX_P.Unit_Delay_InitialCondition_p;
30617
30618 /* SystemInitialize for Enabled SubSystem: '<S106>/Calculate_D_term' */
30619 L4_MA_Calculate_D_term_Init(&L4_MABX_B.Calculate_D_term,
30620 &L4_MABX_DW.Calculate_D_term, &L4_MABX_P.Calculate_D_term);
30621
30622 /* End of SystemInitialize for SubSystem: '<S106>/Calculate_D_term' */
30623
30624 /* SystemInitialize for Enabled SubSystem: '<S106>/Calculate_I_term' */
30625 L4_MA_Calculate_I_term_Init(&L4_MABX_B.Calculate_I_term,
30626 &L4_MABX_DW.Calculate_I_term, &L4_MABX_P.Calculate_I_term);
30627
30628 /* End of SystemInitialize for SubSystem: '<S106>/Calculate_I_term' */
30629
30630 /* SystemInitialize for Outport: '<S96>/PID_output' */
30631 L4_MABX_B.If_Then_Else_nj.Switch = L4_MABX_P.PID_output_Y0;
30632
30633 /* End of SystemInitialize for SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' */
30634
30635 /* SystemInitialize for Chart: '<S331>/VehicleSpeedSetpointDynamicCalculation' */
30636 L4_MABX_B.TimeVectorRaw[0] = 0.0;
30637 L4_MABX_B.TimeVectorRaw[1] = 0.001;
30638 L4_MABX_B.TimeVectorRaw[2] = 0.002;
30639 L4_MABX_B.TimeVectorRaw[3] = 0.003;
30640 L4_MABX_B.TimeVectorRaw[4] = 0.004;
30641 L4_MABX_B.TimeVectorRaw[5] = 0.005;
30642 L4_MABX_B.PositionVectorRaw[0] = 0.0;
30643 L4_MABX_B.PositionVectorRaw[1] = 0.001;
30644 L4_MABX_B.PositionVectorRaw[2] = 0.002;
30645 L4_MABX_B.PositionVectorRaw[3] = 0.003;
30646 L4_MABX_B.PositionVectorRaw[4] = 0.004;
30647 L4_MABX_B.PositionVectorRaw[5] = 0.005;
30648 for (i = 0; i < 6; i++) {
30649 L4_MABX_B.VelocityVectorRaw[i] = 0.0;
30650 L4_MABX_B.AccelerationVectorRaw[i] = 0.0;
30651 L4_MABX_B.JerkVectorRaw[i] = 0.0;
30652 }
30653
30654 /* End of SystemInitialize for Chart: '<S331>/VehicleSpeedSetpointDynamicCalculation' */
30655
30656 /* SystemInitialize for Chart: '<S331>/TwentyPointVectorCalculation' */
30657 L4_MABX_B.TimeVector[0] = 0.0;
30658 L4_MABX_B.TimeVector[1] = 0.001;
30659 L4_MABX_B.TimeVector[2] = 0.002;
30660 L4_MABX_B.TimeVector[3] = 0.003;
30661 L4_MABX_B.TimeVector[4] = 0.004;
30662 L4_MABX_B.TimeVector[5] = 0.005;
30663 L4_MABX_B.TimeVector[6] = 0.006;
30664 L4_MABX_B.TimeVector[7] = 0.007;
30665 L4_MABX_B.TimeVector[8] = 0.008;
30666 L4_MABX_B.TimeVector[9] = 0.0090000000000000011;
30667 L4_MABX_B.TimeVector[10] = 0.01;
30668 L4_MABX_B.TimeVector[11] = 0.011;
30669 L4_MABX_B.TimeVector[12] = 0.012;
30670 L4_MABX_B.TimeVector[13] = 0.013000000000000001;
30671 L4_MABX_B.TimeVector[14] = 0.014;
30672 L4_MABX_B.TimeVector[15] = 0.015;
30673 L4_MABX_B.TimeVector[16] = 0.016;
30674 L4_MABX_B.TimeVector[17] = 0.017;
30675 L4_MABX_B.TimeVector[18] = 0.018000000000000002;
30676 L4_MABX_B.TimeVector[19] = 0.019;
30677 L4_MABX_B.TimeVector[20] = 0.02;
30678 L4_MABX_B.TimeVector[21] = 0.021;
30679 L4_MABX_B.TimeVector[22] = 0.022;
30680 L4_MABX_B.TimeVector[23] = 0.023;
30681 L4_MABX_B.TimeVector[24] = 0.024;
30682 L4_MABX_B.TimeVector[25] = 0.025;
30683 L4_MABX_B.TimeVector[26] = 0.026000000000000002;
30684 L4_MABX_B.TimeVector[27] = 0.027;
30685 L4_MABX_B.TimeVector[28] = 0.028;
30686 L4_MABX_B.TimeVector[29] = 0.029;
30687 L4_MABX_B.TimeVector[30] = 0.03;
30688 L4_MABX_B.TimeVector[31] = 0.031;
30689 L4_MABX_B.TimeVector[32] = 0.032;
30690 L4_MABX_B.PositionVector[0] = 0.0;
30691 L4_MABX_B.PositionVector[1] = 0.001;
30692 L4_MABX_B.PositionVector[2] = 0.002;
30693 L4_MABX_B.PositionVector[3] = 0.003;
30694 L4_MABX_B.PositionVector[4] = 0.004;
30695 L4_MABX_B.PositionVector[5] = 0.005;
30696 L4_MABX_B.PositionVector[6] = 0.006;
30697 L4_MABX_B.PositionVector[7] = 0.007;
30698 L4_MABX_B.PositionVector[8] = 0.008;
30699 L4_MABX_B.PositionVector[9] = 0.0090000000000000011;
30700 L4_MABX_B.PositionVector[10] = 0.01;
30701 L4_MABX_B.PositionVector[11] = 0.011;
30702 L4_MABX_B.PositionVector[12] = 0.012;
30703 L4_MABX_B.PositionVector[13] = 0.013000000000000001;
30704 L4_MABX_B.PositionVector[14] = 0.014;
30705 L4_MABX_B.PositionVector[15] = 0.015;
30706 L4_MABX_B.PositionVector[16] = 0.016;
30707 L4_MABX_B.PositionVector[17] = 0.017;
30708 L4_MABX_B.PositionVector[18] = 0.018000000000000002;
30709 L4_MABX_B.PositionVector[19] = 0.019;
30710 L4_MABX_B.PositionVector[20] = 0.02;
30711 L4_MABX_B.PositionVector[21] = 0.021;
30712 L4_MABX_B.PositionVector[22] = 0.022;
30713 L4_MABX_B.PositionVector[23] = 0.023;
30714 L4_MABX_B.PositionVector[24] = 0.024;
30715 L4_MABX_B.PositionVector[25] = 0.025;
30716 L4_MABX_B.PositionVector[26] = 0.026000000000000002;
30717 L4_MABX_B.PositionVector[27] = 0.027;
30718 L4_MABX_B.PositionVector[28] = 0.028;
30719 L4_MABX_B.PositionVector[29] = 0.029;
30720 L4_MABX_B.PositionVector[30] = 0.03;
30721 L4_MABX_B.PositionVector[31] = 0.031;
30722 L4_MABX_B.PositionVector[32] = 0.032;
30723 memset(&L4_MABX_B.VelocityVector[0], 0, 33U * sizeof(real_T));
30724 memset(&L4_MABX_B.AccelerationVector[0], 0, 33U * sizeof(real_T));
30725 memset(&L4_MABX_B.JerkVector[0], 0, 33U * sizeof(real_T));
30726
30727 /* SystemInitialize for Enabled SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' */
30728 /* InitializeConditions for UnitDelay: '<S140>/Unit_Delay' */
30729 L4_MABX_DW.Unit_Delay_DSTATE_eu = L4_MABX_P.Unit_Delay_InitialCondition_f;
30730
30731 /* InitializeConditions for UnitDelay: '<S147>/Unit_Delay' */
30732 L4_MABX_DW.Unit_Delay_DSTATE_nw = L4_MABX_P.Unit_Delay_InitialCondition_jb;
30733
30734 /* InitializeConditions for UnitDelay: '<S167>/Unit_Delay1' */
30735 L4_MABX_DW.Unit_Delay1_DSTATE_f = L4_MABX_P.Unit_Delay1_InitialCondition_p;
30736
30737 /* InitializeConditions for UnitDelay: '<S168>/Unit_Delay' */
30738 L4_MABX_DW.Unit_Delay_DSTATE_g4 = L4_MABX_P.Unit_Delay_InitialCondition_lq;
30739
30740 /* InitializeConditions for UnitDelay: '<S172>/FixPt Unit Delay2' */
30741 L4_MABX_DW.FixPtUnitDelay2_DSTATE_o =
30742 L4_MABX_P.FixPtUnitDelay2_InitialCondit_p;
30743
30744 /* InitializeConditions for UnitDelay: '<S172>/FixPt Unit Delay1' */
30745 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g2 =
30746 L4_MABX_P.FixPtUnitDelay1_InitialCondit_b;
30747
30748 /* InitializeConditions for UnitDelay: '<S167>/Unit_Delay2' */
30749 L4_MABX_DW.Unit_Delay2_DSTATE_c = L4_MABX_P.Unit_Delay2_InitialCondition_b;
30750
30751 /* InitializeConditions for UnitDelay: '<S139>/Unit_Delay' */
30752 L4_MABX_DW.Unit_Delay_DSTATE_hs = L4_MABX_P.Unit_Delay_InitialCondition_h;
30753
30754 /* SystemInitialize for Enabled SubSystem: '<S144>/Calculate_D_term' */
30755 L4_MA_Calculate_D_term_Init(&L4_MABX_B.Calculate_D_term_p,
30756 &L4_MABX_DW.Calculate_D_term_p, &L4_MABX_P.Calculate_D_term_p);
30757
30758 /* End of SystemInitialize for SubSystem: '<S144>/Calculate_D_term' */
30759
30760 /* SystemInitialize for Enabled SubSystem: '<S144>/Calculate_I_term' */
30761 L4_MA_Calculate_I_term_Init(&L4_MABX_B.Calculate_I_term_e,
30762 &L4_MABX_DW.Calculate_I_term_e, &L4_MABX_P.Calculate_I_term_e);
30763
30764 /* End of SystemInitialize for SubSystem: '<S144>/Calculate_I_term' */
30765
30766 /* SystemInitialize for Outport: '<S97>/PID_output' */
30767 L4_MABX_B.If_Then_Else_fo.Switch = L4_MABX_P.PID_output_Y0_p;
30768
30769 /* End of SystemInitialize for SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' */
30770
30771 /* SystemInitialize for Chart: '<S79>/Chart' */
30772 L4_MABX_DW.is_active_c19_SUB_L4_Task_10ms_ = 0U;
30773 L4_MABX_DW.is_c19_SUB_L4_Task_10ms_SUB_STA = L4_MABX_IN_NO_ACTIVE_CHILD;
30774 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_NOT_AVAILABLE;
30775 L4_MABX_B.VehCtrlState = ENUM_AUTO_CTRL_VEHICLE_STATE_T_NOT_AVAILABLE;
30776
30777 /* SystemInitialize for Enabled SubSystem: '<S79>/Engine_speed_target' */
30778 /* SystemInitialize for Outport: '<S204>/Out1' */
30779 L4_MABX_B.MinMax1_n = L4_MABX_P.Out1_Y0;
30780
30781 /* End of SystemInitialize for SubSystem: '<S79>/Engine_speed_target' */
30782
30783 /* SystemInitialize for Chart: '<S205>/Relay_control_state_machine' */
30784 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_NO_ACTIVE_CHILD;
30785 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_NO_ACTIVE_CHILD;
30786 L4_MABX_DW.temporalCounter_i1 = 0U;
30787 L4_MABX_DW.is_active_c6_SUB_L4_Task_10ms_S = 0U;
30788 L4_MABX_DW.is_c6_SUB_L4_Task_10ms_SUB_STAT = L4_MABX_IN_NO_ACTIVE_CHILD;
30789
30790 /* SystemInitialize for Chart: '<S276>/Chart' */
30791 L4_MABX_DW.is_active_c12_SUB_L4_Task_10ms_ = 0U;
30792 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_NO_ACTIVE_CHILD;
30793
30794 /* SystemInitialize for Enabled SubSystem: '<S276>/Slew_at_event' */
30795 /* InitializeConditions for UnitDelay: '<S323>/Unit_Delay' */
30796 L4_MABX_DW.Unit_Delay_DSTATE_bd = L4_MABX_P.Unit_Delay_InitialCondition_ls;
30797
30798 /* InitializeConditions for UnitDelay: '<S324>/Unit_Delay' */
30799 L4_MABX_DW.Unit_Delay_DSTATE_jt = L4_MABX_P.Unit_Delay_InitialCondition_i0;
30800
30801 /* InitializeConditions for UnitDelay: '<S327>/FixPt Unit Delay2' */
30802 L4_MABX_DW.FixPtUnitDelay2_DSTATE_j =
30803 L4_MABX_P.FixPtUnitDelay2_InitialCondit_c;
30804
30805 /* InitializeConditions for UnitDelay: '<S327>/FixPt Unit Delay1' */
30806 L4_MABX_DW.FixPtUnitDelay1_DSTATE_o =
30807 L4_MABX_P.FixPtUnitDelay1_InitialCondit_f;
30808
30809 /* InitializeConditions for UnitDelay: '<S322>/Unit_Delay' */
30810 L4_MABX_DW.Unit_Delay_DSTATE_ll = L4_MABX_P.Unit_Delay_InitialCondition_ld;
30811
30812 /* SystemInitialize for Outport: '<S321>/F_Out_slewing' */
30813 L4_MABX_B.LogicalOperator_dm = L4_MABX_P.F_Out_slewing_Y0;
30814
30815 /* SystemInitialize for Outport: '<S321>/Out' */
30816 L4_MABX_B.If_Then_Else_n3.Switch = L4_MABX_P.Out_Y0;
30817
30818 /* End of SystemInitialize for SubSystem: '<S276>/Slew_at_event' */
30819 /* End of SystemInitialize for SubSystem: '<S65>/Task_10ms' */
30820
30821 /* SystemInitialize for Enabled SubSystem: '<S611>/PosRapidUpdate_011' */
30822 /* SystemInitialize for Outport: '<S612>/Latitude_' */
30823 L4_MABX_B.SFunction1_o1_dl = L4_MABX_P.Latitude_Y0;
30824
30825 /* SystemInitialize for Outport: '<S612>/Longitude_' */
30826 L4_MABX_B.SFunction1_o2_ggw = L4_MABX_P.Longitude_Y0;
30827
30828 /* SystemInitialize for Outport: '<S612>/RX status' */
30829 L4_MABX_B.SFunction1_o3_bk = L4_MABX_P.RXstatus_Y0_ja;
30830
30831 /* SystemInitialize for Outport: '<S612>/RX time' */
30832 L4_MABX_B.SFunction1_o4_mu = L4_MABX_P.RXtime_Y0_bg;
30833
30834 /* SystemInitialize for Outport: '<S612>/RX delta time' */
30835 L4_MABX_B.SFunction1_o5_e = L4_MABX_P.RXdeltatime_Y0_np;
30836
30837 /* End of SystemInitialize for SubSystem: '<S611>/PosRapidUpdate_011' */
30838
30839 /* SystemInitialize for Enabled SubSystem: '<S611>/PosRapidUpdate_1' */
30840 /* SystemInitialize for Outport: '<S613>/Latitude_' */
30841 L4_MABX_B.SFunction1_o1_e = L4_MABX_P.Latitude_Y0_e;
30842
30843 /* SystemInitialize for Outport: '<S613>/Longitude_' */
30844 L4_MABX_B.SFunction1_o2_ie = L4_MABX_P.Longitude_Y0_h;
30845
30846 /* SystemInitialize for Outport: '<S613>/RX status' */
30847 L4_MABX_B.SFunction1_o3_ew = L4_MABX_P.RXstatus_Y0_l;
30848
30849 /* SystemInitialize for Outport: '<S613>/RX time' */
30850 L4_MABX_B.SFunction1_o4_cn = L4_MABX_P.RXtime_Y0_dw;
30851
30852 /* SystemInitialize for Outport: '<S613>/RX delta time' */
30853 L4_MABX_B.SFunction1_o5_k = L4_MABX_P.RXdeltatime_Y0_me;
30854
30855 /* End of SystemInitialize for SubSystem: '<S611>/PosRapidUpdate_1' */
30856
30857 /* SystemInitialize for Enabled SubSystem: '<S491>/CCVS1_00' */
30858 /* SystemInitialize for Outport: '<S492>/TwoSpeedAxleSwitch' */
30859 L4_MABX_B.SFunction1_o1_lf = L4_MABX_P.TwoSpeedAxleSwitch_Y0;
30860
30861 /* SystemInitialize for Outport: '<S492>/ParkingBrakeSwitch' */
30862 L4_MABX_B.SFunction1_o2_no = L4_MABX_P.ParkingBrakeSwitch_Y0;
30863
30864 /* SystemInitialize for Outport: '<S492>/CruiseCtrlPauseSwitch' */
30865 L4_MABX_B.SFunction1_o3_m1 = L4_MABX_P.CruiseCtrlPauseSwitch_Y0;
30866
30867 /* SystemInitialize for Outport: '<S492>/ParkBrakeReleaseInhibitRq' */
30868 L4_MABX_B.SFunction1_o4_gw = L4_MABX_P.ParkBrakeReleaseInhibitRq_Y0;
30869
30870 /* SystemInitialize for Outport: '<S492>/WheelBasedVehicleSpeed' */
30871 WheelBasedVehicleSpeed = L4_MABX_P.WheelBasedVehicleSpeed_Y0;
30872
30873 /* SystemInitialize for Outport: '<S492>/CruiseCtrlActive' */
30874 L4_MABX_B.SFunction1_o6_jk = L4_MABX_P.CruiseCtrlActive_Y0;
30875
30876 /* SystemInitialize for Outport: '<S492>/CruiseCtrlEnableSwitch' */
30877 L4_MABX_B.SFunction1_o7_l1 = L4_MABX_P.CruiseCtrlEnableSwitch_Y0;
30878
30879 /* SystemInitialize for Outport: '<S492>/BrakeSwitch' */
30880 BrakeSwitch = L4_MABX_P.BrakeSwitch_Y0;
30881
30882 /* SystemInitialize for Outport: '<S492>/ClutchSwitch' */
30883 L4_MABX_B.SFunction1_o9_hq = L4_MABX_P.ClutchSwitch_Y0;
30884
30885 /* SystemInitialize for Outport: '<S492>/CruiseCtrlSetSwitch' */
30886 L4_MABX_B.SFunction1_o10_h = L4_MABX_P.CruiseCtrlSetSwitch_Y0;
30887
30888 /* SystemInitialize for Outport: '<S492>/CruiseCtrlCoastSwitch' */
30889 L4_MABX_B.SFunction1_o11_gb = L4_MABX_P.CruiseCtrlCoastSwitch_Y0;
30890
30891 /* SystemInitialize for Outport: '<S492>/CruiseCtrlResumeSwitch' */
30892 L4_MABX_B.SFunction1_o12_j = L4_MABX_P.CruiseCtrlResumeSwitch_Y0;
30893
30894 /* SystemInitialize for Outport: '<S492>/CruiseCtrlAccelerateSwitch' */
30895 L4_MABX_B.SFunction1_o13_hl = L4_MABX_P.CruiseCtrlAccelerateSwitch_Y0;
30896
30897 /* SystemInitialize for Outport: '<S492>/CruiseCtrlSetSpeed' */
30898 L4_MABX_B.SFunction1_o14_he = L4_MABX_P.CruiseCtrlSetSpeed_Y0;
30899
30900 /* SystemInitialize for Outport: '<S492>/PTOGovernorState' */
30901 L4_MABX_B.SFunction1_o15_d = L4_MABX_P.PTOGovernorState_Y0;
30902
30903 /* SystemInitialize for Outport: '<S492>/CruiseCtrlStates' */
30904 L4_MABX_B.SFunction1_o16_e = L4_MABX_P.CruiseCtrlStates_Y0;
30905
30906 /* SystemInitialize for Outport: '<S492>/EngIdleIncrementSwitch' */
30907 L4_MABX_B.SFunction1_o17_o = L4_MABX_P.EngIdleIncrementSwitch_Y0;
30908
30909 /* SystemInitialize for Outport: '<S492>/EngIdleDecrementSwitch' */
30910 L4_MABX_B.SFunction1_o18_d = L4_MABX_P.EngIdleDecrementSwitch_Y0;
30911
30912 /* SystemInitialize for Outport: '<S492>/EngTestModeSwitch' */
30913 L4_MABX_B.SFunction1_o19_e = L4_MABX_P.EngTestModeSwitch_Y0;
30914
30915 /* SystemInitialize for Outport: '<S492>/EngShutdownOverrideSwitch' */
30916 L4_MABX_B.SFunction1_o20_p = L4_MABX_P.EngShutdownOverrideSwitch_Y0;
30917
30918 /* SystemInitialize for Outport: '<S492>/RX status' */
30919 L4_MABX_B.SFunction1_o21_j = L4_MABX_P.RXstatus_Y0_a;
30920
30921 /* SystemInitialize for Outport: '<S492>/RX time' */
30922 L4_MABX_B.SFunction1_o22_d = L4_MABX_P.RXtime_Y0_c;
30923
30924 /* SystemInitialize for Outport: '<S492>/RX delta time' */
30925 L4_MABX_B.SFunction1_o23_dl = L4_MABX_P.RXdeltatime_Y0_p;
30926
30927 /* End of SystemInitialize for SubSystem: '<S491>/CCVS1_00' */
30928
30929 /* SystemInitialize for Enabled SubSystem: '<S495>/COGSOGRapidUpdate_00' */
30930 /* SystemInitialize for Outport: '<S496>/SID' */
30931 L4_MABX_B.SFunction1_o1_ln = L4_MABX_P.SID_Y0;
30932
30933 /* SystemInitialize for Outport: '<S496>/COGReference' */
30934 L4_MABX_B.SFunction1_o2_p4 = L4_MABX_P.COGReference_Y0;
30935
30936 /* SystemInitialize for Outport: '<S496>/CourseOverGround' */
30937 L4_MABX_B.SFunction1_o3_lv = L4_MABX_P.CourseOverGround_Y0;
30938
30939 /* SystemInitialize for Outport: '<S496>/SpeedOverGround' */
30940 L4_MABX_B.SFunction1_o4_nh = L4_MABX_P.SpeedOverGround_Y0;
30941
30942 /* SystemInitialize for Outport: '<S496>/RX status' */
30943 L4_MABX_B.SFunction1_o5_f2 = L4_MABX_P.RXstatus_Y0_g;
30944
30945 /* SystemInitialize for Outport: '<S496>/RX time' */
30946 L4_MABX_B.SFunction1_o6_c5 = L4_MABX_P.RXtime_Y0_la;
30947
30948 /* SystemInitialize for Outport: '<S496>/RX delta time' */
30949 L4_MABX_B.SFunction1_o7_ny = L4_MABX_P.RXdeltatime_Y0_j;
30950
30951 /* End of SystemInitialize for SubSystem: '<S495>/COGSOGRapidUpdate_00' */
30952
30953 /* SystemInitialize for Enabled SubSystem: '<S495>/COGSOGRapidUpdate_1' */
30954 /* SystemInitialize for Outport: '<S497>/SID' */
30955 L4_MABX_B.SFunction1_o1_md = L4_MABX_P.SID_Y0_f;
30956
30957 /* SystemInitialize for Outport: '<S497>/COGReference' */
30958 L4_MABX_B.SFunction1_o2_lt = L4_MABX_P.COGReference_Y0_g;
30959
30960 /* SystemInitialize for Outport: '<S497>/CourseOverGround' */
30961 L4_MABX_B.SFunction1_o3_ae = L4_MABX_P.CourseOverGround_Y0_g;
30962
30963 /* SystemInitialize for Outport: '<S497>/SpeedOverGround' */
30964 L4_MABX_B.SFunction1_o4_gk = L4_MABX_P.SpeedOverGround_Y0_a;
30965
30966 /* SystemInitialize for Outport: '<S497>/RX status' */
30967 L4_MABX_B.SFunction1_o5_df = L4_MABX_P.RXstatus_Y0_mp;
30968
30969 /* SystemInitialize for Outport: '<S497>/RX time' */
30970 L4_MABX_B.SFunction1_o6_gql = L4_MABX_P.RXtime_Y0_op;
30971
30972 /* SystemInitialize for Outport: '<S497>/RX delta time' */
30973 L4_MABX_B.SFunction1_o7_c4 = L4_MABX_P.RXdeltatime_Y0_b;
30974
30975 /* End of SystemInitialize for SubSystem: '<S495>/COGSOGRapidUpdate_1' */
30976
30977 /* SystemInitialize for Atomic SubSystem: '<S815>/CAN_TX_100ms' */
30978 /* SystemInitialize for Enabled SubSystem: '<S852>/Rolling_15_counter' */
30979 /* InitializeConditions for UnitDelay: '<S894>/Unit_Delay' */
30980 L4_MABX_DW.Unit_Delay_DSTATE = L4_MABX_P.Unit_Delay_InitialCondition_kb;
30981
30982 /* SystemInitialize for Outport: '<S894>/Rolling_15_counter' */
30983 L4_MABX_B.Unit_Delay = L4_MABX_P.Rolling_15_counter_Y0;
30984
30985 /* End of SystemInitialize for SubSystem: '<S852>/Rolling_15_counter' */
30986
30987 /* SystemInitialize for Enabled SubSystem: '<S874>/PropB_XPR_FC' */
30988 /* SystemInitialize for Outport: '<S876>/TX status' */
30989 L4_MABX_B.SFunction1_o1_oz = L4_MABX_P.TXstatus_Y0_h;
30990
30991 /* SystemInitialize for Outport: '<S876>/TX time' */
30992 L4_MABX_B.SFunction1_o2_ar = L4_MABX_P.TXtime_Y0_c;
30993
30994 /* SystemInitialize for Outport: '<S876>/TX delta time' */
30995 L4_MABX_B.SFunction1_o3_e = L4_MABX_P.TXdeltatime_Y0_c;
30996
30997 /* SystemInitialize for Outport: '<S876>/TX delay time' */
30998 L4_MABX_B.SFunction1_o4_h1 = L4_MABX_P.TXdelaytime_Y0_d;
30999
31000 /* End of SystemInitialize for SubSystem: '<S874>/PropB_XPR_FC' */
31001
31002 /* SystemInitialize for Enabled SubSystem: '<S875>/PropB_XPR_FC' */
31003 /* SystemInitialize for Outport: '<S877>/TX status' */
31004 L4_MABX_B.SFunction1_o1_gy = L4_MABX_P.TXstatus_Y0_cy;
31005
31006 /* SystemInitialize for Outport: '<S877>/TX time' */
31007 L4_MABX_B.SFunction1_o2_ge = L4_MABX_P.TXtime_Y0_k;
31008
31009 /* SystemInitialize for Outport: '<S877>/TX delta time' */
31010 L4_MABX_B.SFunction1_o3_ik = L4_MABX_P.TXdeltatime_Y0_dy;
31011
31012 /* SystemInitialize for Outport: '<S877>/TX delay time' */
31013 L4_MABX_B.SFunction1_o4_ij = L4_MABX_P.TXdelaytime_Y0_k;
31014
31015 /* End of SystemInitialize for SubSystem: '<S875>/PropB_XPR_FC' */
31016
31017 /* SystemInitialize for Enabled SubSystem: '<S904>/Std_PosRapidUpdate_01' */
31018 /* SystemInitialize for Outport: '<S905>/TX status' */
31019 L4_MABX_B.SFunction1_o1_kg = L4_MABX_P.TXstatus_Y0_n;
31020
31021 /* SystemInitialize for Outport: '<S905>/TX time' */
31022 L4_MABX_B.SFunction1_o2_gn = L4_MABX_P.TXtime_Y0_ap;
31023
31024 /* SystemInitialize for Outport: '<S905>/TX delta time' */
31025 L4_MABX_B.SFunction1_o3_o = L4_MABX_P.TXdeltatime_Y0_k;
31026
31027 /* SystemInitialize for Outport: '<S905>/TX delay time' */
31028 L4_MABX_B.SFunction1_o4_p2 = L4_MABX_P.TXdelaytime_Y0_i;
31029
31030 /* End of SystemInitialize for SubSystem: '<S904>/Std_PosRapidUpdate_01' */
31031
31032 /* SystemInitialize for Enabled SubSystem: '<S854>/CCVS1_00' */
31033 /* SystemInitialize for Outport: '<S856>/TX status' */
31034 L4_MABX_B.SFunction1_o1_lt = L4_MABX_P.TXstatus_Y0_c;
31035
31036 /* SystemInitialize for Outport: '<S856>/TX time' */
31037 L4_MABX_B.SFunction1_o2_kx = L4_MABX_P.TXtime_Y0_e;
31038
31039 /* SystemInitialize for Outport: '<S856>/TX delta time' */
31040 L4_MABX_B.SFunction1_o3_a3 = L4_MABX_P.TXdeltatime_Y0_d;
31041
31042 /* SystemInitialize for Outport: '<S856>/TX delay time' */
31043 L4_MABX_B.SFunction1_o4_lf = L4_MABX_P.TXdelaytime_Y0_b;
31044
31045 /* End of SystemInitialize for SubSystem: '<S854>/CCVS1_00' */
31046
31047 /* SystemInitialize for Enabled SubSystem: '<S855>/CCVS1_00' */
31048 /* SystemInitialize for Outport: '<S857>/TX status' */
31049 L4_MABX_B.SFunction1_o1_c = L4_MABX_P.TXstatus_Y0_m;
31050
31051 /* SystemInitialize for Outport: '<S857>/TX time' */
31052 L4_MABX_B.SFunction1_o2_kz = L4_MABX_P.TXtime_Y0_gr;
31053
31054 /* SystemInitialize for Outport: '<S857>/TX delta time' */
31055 L4_MABX_B.SFunction1_o3_b = L4_MABX_P.TXdeltatime_Y0_a;
31056
31057 /* SystemInitialize for Outport: '<S857>/TX delay time' */
31058 L4_MABX_B.SFunction1_o4_o2 = L4_MABX_P.TXdelaytime_Y0_n;
31059
31060 /* End of SystemInitialize for SubSystem: '<S855>/CCVS1_00' */
31061
31062 /* SystemInitialize for Enabled SubSystem: '<S858>/PropB_REAX_5_E4' */
31063 /* SystemInitialize for Outport: '<S860>/TX status' */
31064 L4_MABX_B.SFunction1_o1_pc = L4_MABX_P.TXstatus_Y0_l;
31065
31066 /* SystemInitialize for Outport: '<S860>/TX time' */
31067 L4_MABX_B.SFunction1_o2_ad = L4_MABX_P.TXtime_Y0_a;
31068
31069 /* SystemInitialize for Outport: '<S860>/TX delta time' */
31070 L4_MABX_B.SFunction1_o3_gr = L4_MABX_P.TXdeltatime_Y0_id;
31071
31072 /* SystemInitialize for Outport: '<S860>/TX delay time' */
31073 L4_MABX_B.SFunction1_o4_o0 = L4_MABX_P.TXdelaytime_Y0_h;
31074
31075 /* End of SystemInitialize for SubSystem: '<S858>/PropB_REAX_5_E4' */
31076
31077 /* SystemInitialize for Enabled SubSystem: '<S859>/PropB_REAX_5_E4' */
31078 /* SystemInitialize for Outport: '<S861>/TX status' */
31079 L4_MABX_B.SFunction1_o1_mw = L4_MABX_P.TXstatus_Y0_cg;
31080
31081 /* SystemInitialize for Outport: '<S861>/TX time' */
31082 L4_MABX_B.SFunction1_o2_f = L4_MABX_P.TXtime_Y0_l;
31083
31084 /* SystemInitialize for Outport: '<S861>/TX delta time' */
31085 L4_MABX_B.SFunction1_o3_d = L4_MABX_P.TXdeltatime_Y0_n;
31086
31087 /* SystemInitialize for Outport: '<S861>/TX delay time' */
31088 L4_MABX_B.SFunction1_o4_e3 = L4_MABX_P.TXdelaytime_Y0_hs;
31089
31090 /* End of SystemInitialize for SubSystem: '<S859>/PropB_REAX_5_E4' */
31091
31092 /* SystemInitialize for Enabled SubSystem: '<S878>/Std_COGSOGRapidUpdate_01' */
31093 /* SystemInitialize for Outport: '<S879>/TX status' */
31094 L4_MABX_B.SFunction1_o1_ng = L4_MABX_P.TXstatus_Y0_b;
31095
31096 /* SystemInitialize for Outport: '<S879>/TX time' */
31097 L4_MABX_B.SFunction1_o2_o = L4_MABX_P.TXtime_Y0_b;
31098
31099 /* SystemInitialize for Outport: '<S879>/TX delta time' */
31100 L4_MABX_B.SFunction1_o3_nb = L4_MABX_P.TXdeltatime_Y0_j;
31101
31102 /* SystemInitialize for Outport: '<S879>/TX delay time' */
31103 L4_MABX_B.SFunction1_o4_a = L4_MABX_P.TXdelaytime_Y0_nw;
31104
31105 /* End of SystemInitialize for SubSystem: '<S878>/Std_COGSOGRapidUpdate_01' */
31106
31107 /* SystemInitialize for Enabled SubSystem: '<S880>/EBC1_TX' */
31108 /* SystemInitialize for Outport: '<S881>/TX status' */
31109 L4_MABX_B.SFunction1_o1_lu = L4_MABX_P.TXstatus_Y0_e;
31110
31111 /* SystemInitialize for Outport: '<S881>/TX time' */
31112 L4_MABX_B.SFunction1_o2_i = L4_MABX_P.TXtime_Y0_k2;
31113
31114 /* SystemInitialize for Outport: '<S881>/TX delta time' */
31115 L4_MABX_B.SFunction1_o3_od = L4_MABX_P.TXdeltatime_Y0_nb;
31116
31117 /* SystemInitialize for Outport: '<S881>/TX delay time' */
31118 L4_MABX_B.SFunction1_o4_l5 = L4_MABX_P.TXdelaytime_Y0_l;
31119
31120 /* End of SystemInitialize for SubSystem: '<S880>/EBC1_TX' */
31121 /* End of SystemInitialize for SubSystem: '<S815>/CAN_TX_100ms' */
31122
31123 /* SystemInitialize for Atomic SubSystem: '<S815>/CAN_TX_10ms' */
31124 /* InitializeConditions for UnitDelay: '<S972>/Unit_Delay' */
31125 L4_MABX_DW.Unit_Delay_DSTATE_ib = L4_MABX_P.Unit_Delay_InitialCondition_fk;
31126
31127 /* InitializeConditions for UnitDelay: '<S973>/Unit Delay' */
31128 L4_MABX_DW.UnitDelay_DSTATE_mx = L4_MABX_P.UnitDelay_InitialCondition_d;
31129
31130 /* SystemInitialize for Enabled SubSystem: '<S917>/ACCS' */
31131 /* SystemInitialize for Outport: '<S918>/TX status' */
31132 L4_MABX_B.SFunction1_o1_a = L4_MABX_P.TXstatus_Y0_br;
31133
31134 /* SystemInitialize for Outport: '<S918>/TX time' */
31135 L4_MABX_B.SFunction1_o2_dz = L4_MABX_P.TXtime_Y0_d;
31136
31137 /* SystemInitialize for Outport: '<S918>/TX delta time' */
31138 L4_MABX_B.SFunction1_o3_kl = L4_MABX_P.TXdeltatime_Y0_m;
31139
31140 /* SystemInitialize for Outport: '<S918>/TX delay time' */
31141 L4_MABX_B.SFunction1_o4_hg = L4_MABX_P.TXdelaytime_Y0_e;
31142
31143 /* End of SystemInitialize for SubSystem: '<S917>/ACCS' */
31144
31145 /* SystemInitialize for Enabled SubSystem: '<S925>/EEC1_00' */
31146 /* SystemInitialize for Outport: '<S927>/TX status' */
31147 L4_MABX_B.SFunction1_o1_pt = L4_MABX_P.TXstatus_Y0_p;
31148
31149 /* SystemInitialize for Outport: '<S927>/TX time' */
31150 L4_MABX_B.SFunction1_o2_he = L4_MABX_P.TXtime_Y0_o;
31151
31152 /* SystemInitialize for Outport: '<S927>/TX delta time' */
31153 L4_MABX_B.SFunction1_o3_gw = L4_MABX_P.TXdeltatime_Y0_az;
31154
31155 /* SystemInitialize for Outport: '<S927>/TX delay time' */
31156 L4_MABX_B.SFunction1_o4_h = L4_MABX_P.TXdelaytime_Y0_eu;
31157
31158 /* End of SystemInitialize for SubSystem: '<S925>/EEC1_00' */
31159
31160 /* SystemInitialize for Enabled SubSystem: '<S926>/EEC1_00' */
31161 /* SystemInitialize for Outport: '<S928>/TX status' */
31162 L4_MABX_B.SFunction1_o1_gm = L4_MABX_P.TXstatus_Y0_p3;
31163
31164 /* SystemInitialize for Outport: '<S928>/TX time' */
31165 L4_MABX_B.SFunction1_o2_e = L4_MABX_P.TXtime_Y0_oj;
31166
31167 /* SystemInitialize for Outport: '<S928>/TX delta time' */
31168 L4_MABX_B.SFunction1_o3_m = L4_MABX_P.TXdeltatime_Y0_e;
31169
31170 /* SystemInitialize for Outport: '<S928>/TX delay time' */
31171 L4_MABX_B.SFunction1_o4_j = L4_MABX_P.TXdelaytime_Y0_f;
31172
31173 /* End of SystemInitialize for SubSystem: '<S926>/EEC1_00' */
31174
31175 /* SystemInitialize for Merge: '<S943>/Merge' */
31176 L4_MABX_B.Merge = L4_MABX_P.Merge_InitialOutput;
31177
31178 /* SystemInitialize for Enabled SubSystem: '<S929>/PropB_REAX_1_E4' */
31179 /* SystemInitialize for Outport: '<S931>/TX status' */
31180 L4_MABX_B.SFunction1_o1_b2 = L4_MABX_P.TXstatus_Y0_f;
31181
31182 /* SystemInitialize for Outport: '<S931>/TX time' */
31183 L4_MABX_B.SFunction1_o2_d = L4_MABX_P.TXtime_Y0_bq;
31184
31185 /* SystemInitialize for Outport: '<S931>/TX delta time' */
31186 L4_MABX_B.SFunction1_o3_gd = L4_MABX_P.TXdeltatime_Y0_ay;
31187
31188 /* SystemInitialize for Outport: '<S931>/TX delay time' */
31189 L4_MABX_B.SFunction1_o4_bi = L4_MABX_P.TXdelaytime_Y0_ei;
31190
31191 /* End of SystemInitialize for SubSystem: '<S929>/PropB_REAX_1_E4' */
31192
31193 /* SystemInitialize for Enabled SubSystem: '<S930>/PropB_REAX_1_E4' */
31194 /* SystemInitialize for Outport: '<S932>/TX status' */
31195 L4_MABX_B.SFunction1_o1_n = L4_MABX_P.TXstatus_Y0_hl;
31196
31197 /* SystemInitialize for Outport: '<S932>/TX time' */
31198 L4_MABX_B.SFunction1_o2_mu = L4_MABX_P.TXtime_Y0_p;
31199
31200 /* SystemInitialize for Outport: '<S932>/TX delta time' */
31201 L4_MABX_B.SFunction1_o3_nm = L4_MABX_P.TXdeltatime_Y0_dc;
31202
31203 /* SystemInitialize for Outport: '<S932>/TX delay time' */
31204 L4_MABX_B.SFunction1_o4_g = L4_MABX_P.TXdelaytime_Y0_m;
31205
31206 /* End of SystemInitialize for SubSystem: '<S930>/PropB_REAX_1_E4' */
31207
31208 /* SystemInitialize for Enabled SubSystem: '<S939>/VDC2_0B' */
31209 /* SystemInitialize for Outport: '<S940>/TX status' */
31210 L4_MABX_B.SFunction1_o1_k = L4_MABX_P.TXstatus_Y0_am;
31211
31212 /* SystemInitialize for Outport: '<S940>/TX time' */
31213 L4_MABX_B.SFunction1_o2_a = L4_MABX_P.TXtime_Y0_an;
31214
31215 /* SystemInitialize for Outport: '<S940>/TX delta time' */
31216 L4_MABX_B.SFunction1_o3_n2 = L4_MABX_P.TXdeltatime_Y0_aq;
31217
31218 /* SystemInitialize for Outport: '<S940>/TX delay time' */
31219 L4_MABX_B.SFunction1_o4_d = L4_MABX_P.TXdelaytime_Y0_je;
31220
31221 /* End of SystemInitialize for SubSystem: '<S939>/VDC2_0B' */
31222 /* End of SystemInitialize for SubSystem: '<S815>/CAN_TX_10ms' */
31223
31224 /* SystemInitialize for Atomic SubSystem: '<S815>/CAN_TX_20ms' */
31225 /* InitializeConditions for UnitDelay: '<S977>/Unit_Delay' */
31226 L4_MABX_DW.Unit_Delay_DSTATE_bm = L4_MABX_P.Unit_Delay_InitialCondition_at;
31227
31228 /* InitializeConditions for UnitDelay: '<S1000>/Unit_Delay' */
31229 L4_MABX_DW.Unit_Delay_DSTATE_bq = L4_MABX_P.Unit_Delay_InitialCondition_oa;
31230
31231 /* InitializeConditions for UnitDelay: '<S1001>/Unit Delay' */
31232 L4_MABX_DW.UnitDelay_DSTATE_f = L4_MABX_P.UnitDelay_InitialCondition_ih;
31233
31234 /* SystemInitialize for Enabled SubSystem: '<S984>/PropB_XBR_B3' */
31235 /* SystemInitialize for Outport: '<S985>/TX status' */
31236 L4_MABX_B.SFunction1_o1_pk = L4_MABX_P.TXstatus_Y0_i;
31237
31238 /* SystemInitialize for Outport: '<S985>/TX time' */
31239 L4_MABX_B.SFunction1_o2_k = L4_MABX_P.TXtime_Y0_dw;
31240
31241 /* SystemInitialize for Outport: '<S985>/TX delta time' */
31242 L4_MABX_B.SFunction1_o3_i = L4_MABX_P.TXdeltatime_Y0_ji;
31243
31244 /* SystemInitialize for Outport: '<S985>/TX delay time' */
31245 L4_MABX_B.SFunction1_o4_oh = L4_MABX_P.TXdelaytime_Y0_p;
31246
31247 /* End of SystemInitialize for SubSystem: '<S984>/PropB_XBR_B3' */
31248
31249 /* SystemInitialize for Enabled SubSystem: '<S986>/PropB_Bendix_2C2_XPR' */
31250 /* SystemInitialize for Outport: '<S987>/TX status' */
31251 L4_MABX_B.SFunction1_o1_l = L4_MABX_P.TXstatus_Y0_a5;
31252
31253 /* SystemInitialize for Outport: '<S987>/TX time' */
31254 L4_MABX_B.SFunction1_o2_bv = L4_MABX_P.TXtime_Y0_og;
31255
31256 /* SystemInitialize for Outport: '<S987>/TX delta time' */
31257 L4_MABX_B.SFunction1_o3_n = L4_MABX_P.TXdeltatime_Y0_p;
31258
31259 /* SystemInitialize for Outport: '<S987>/TX delay time' */
31260 L4_MABX_B.SFunction1_o4_i = L4_MABX_P.TXdelaytime_Y0_lz;
31261
31262 /* End of SystemInitialize for SubSystem: '<S986>/PropB_Bendix_2C2_XPR' */
31263
31264 /* SystemInitialize for Enabled SubSystem: '<S994>/Std_OdometryData' */
31265 /* SystemInitialize for Outport: '<S995>/TX status' */
31266 L4_MABX_B.SFunction1_o1_i = L4_MABX_P.TXstatus_Y0_if;
31267
31268 /* SystemInitialize for Outport: '<S995>/TX time' */
31269 L4_MABX_B.SFunction1_o2_ml = L4_MABX_P.TXtime_Y0_ce;
31270
31271 /* SystemInitialize for Outport: '<S995>/TX delta time' */
31272 L4_MABX_B.SFunction1_o3_a = L4_MABX_P.TXdeltatime_Y0_ca;
31273
31274 /* SystemInitialize for Outport: '<S995>/TX delay time' */
31275 L4_MABX_B.SFunction1_o4_o = L4_MABX_P.TXdelaytime_Y0_c;
31276
31277 /* End of SystemInitialize for SubSystem: '<S994>/Std_OdometryData' */
31278 /* End of SystemInitialize for SubSystem: '<S815>/CAN_TX_20ms' */
31279
31280 /* SystemInitialize for Atomic SubSystem: '<S815>/CAN_TX_5000ms' */
31281 /* InitializeConditions for UnitDelay: '<S1015>/Unit_Delay' */
31282 L4_MABX_DW.Unit_Delay_DSTATE_g3 = L4_MABX_P.Unit_Delay_InitialCondition_ie;
31283
31284 /* InitializeConditions for UnitDelay: '<S1016>/Unit Delay' */
31285 L4_MABX_DW.UnitDelay_DSTATE_i = L4_MABX_P.UnitDelay_InitialCondition_j;
31286
31287 /* SystemInitialize for Enabled SubSystem: '<S1009>/RQST_13_E4' */
31288 /* SystemInitialize for Outport: '<S1011>/TX status' */
31289 L4_MABX_B.SFunction1_o1_mo = L4_MABX_P.TXstatus_Y0_ih;
31290
31291 /* SystemInitialize for Outport: '<S1011>/TX time' */
31292 L4_MABX_B.SFunction1_o2_c = L4_MABX_P.TXtime_Y0_m;
31293
31294 /* SystemInitialize for Outport: '<S1011>/TX delta time' */
31295 L4_MABX_B.SFunction1_o3_k = L4_MABX_P.TXdeltatime_Y0_iy;
31296
31297 /* SystemInitialize for Outport: '<S1011>/TX delay time' */
31298 L4_MABX_B.SFunction1_o4_b = L4_MABX_P.TXdelaytime_Y0_bl;
31299
31300 /* End of SystemInitialize for SubSystem: '<S1009>/RQST_13_E4' */
31301 /* End of SystemInitialize for SubSystem: '<S815>/CAN_TX_5000ms' */
31302
31303 /* SystemInitialize for Enabled SubSystem: '<S626>/TC1_03_05' */
31304 /* SystemInitialize for Outport: '<S627>/SPN681_TransGearShiftInhibitReq' */
31305 L4_MABX_B.SFunction1_o1_pj = L4_MABX_P.SPN681_TransGearShiftInhibitReq;
31306
31307 /* SystemInitialize for Outport: '<S627>/SPN682_TransTrqConvLockupDisReq' */
31308 L4_MABX_B.SFunction1_o2_ol = L4_MABX_P.SPN682_TransTrqConvLockupDisReq;
31309
31310 /* SystemInitialize for Outport: '<S627>/SPN683_DisengageDrivelineReq' */
31311 L4_MABX_B.SFunction1_o3_ph = L4_MABX_P.SPN683_DisengageDrivelineReq_Y0;
31312
31313 /* SystemInitialize for Outport: '<S627>/SPN4242_TransRevGearShiftInhibRq' */
31314 L4_MABX_B.SFunction1_o4_n = L4_MABX_P.SPN4242_TransRevGearShiftInhibR;
31315
31316 /* SystemInitialize for Outport: '<S627>/SPN684_RequestedPercClutchSlip' */
31317 L4_MABX_B.SFunction1_o5_g = L4_MABX_P.SPN684_RequestedPercClutchSlip_;
31318
31319 /* SystemInitialize for Outport: '<S627>/SPN525_TransRequestedGear' */
31320 L4_MABX_B.SFunction1_o6_nu = L4_MABX_P.SPN525_TransRequestedGear_Y0;
31321
31322 /* SystemInitialize for Outport: '<S627>/SPN685_DisengageDiffLockRqFrAx1' */
31323 L4_MABX_B.SFunction1_o7_e = L4_MABX_P.SPN685_DisengageDiffLockRqFrAx1;
31324
31325 /* SystemInitialize for Outport: '<S627>/SPN686_DisengageDiffLockRqFrAx2' */
31326 L4_MABX_B.SFunction1_o8_j = L4_MABX_P.SPN686_DisengageDiffLockRqFrAx2;
31327
31328 /* SystemInitialize for Outport: '<S627>/SPN687_DisengageDiffLockRqRrAx1' */
31329 L4_MABX_B.SFunction1_o9_j = L4_MABX_P.SPN687_DisengageDiffLockRqRrAx1;
31330
31331 /* SystemInitialize for Outport: '<S627>/SPN688_DisengageDiffLockRqRrAx2' */
31332 L4_MABX_B.SFunction1_o10_i = L4_MABX_P.SPN688_DisengageDiffLockRqRrAx2;
31333
31334 /* SystemInitialize for Outport: '<S627>/SPN689_DisengageDiffLockRqC' */
31335 L4_MABX_B.SFunction1_o11 = L4_MABX_P.SPN689_DisengageDiffLockRqC_Y0;
31336
31337 /* SystemInitialize for Outport: '<S627>/SPN690_DisengageDiffLockRqCF' */
31338 L4_MABX_B.SFunction1_o12 = L4_MABX_P.SPN690_DisengageDiffLockRqCF_Y0;
31339
31340 /* SystemInitialize for Outport: '<S627>/SPN691_DisengageDiffLockRqCR' */
31341 L4_MABX_B.SFunction1_o13 = L4_MABX_P.SPN691_DisengageDiffLockRqCR_Y0;
31342
31343 /* SystemInitialize for Outport: '<S627>/SPN5762_TransLoadRedInhibitRq' */
31344 L4_MABX_B.SFunction1_o14 = L4_MABX_P.SPN5762_TransLoadRedInhibitRq_Y;
31345
31346 /* SystemInitialize for Outport: '<S627>/SPN1852_TransmissionMode1' */
31347 L4_MABX_B.SFunction1_o15 = L4_MABX_P.SPN1852_TransmissionMode1_Y0;
31348
31349 /* SystemInitialize for Outport: '<S627>/SPN1853_TransmissionMode2' */
31350 L4_MABX_B.SFunction1_o16 = L4_MABX_P.SPN1853_TransmissionMode2_Y0;
31351
31352 /* SystemInitialize for Outport: '<S627>/SPN1854_TransmissionMode3' */
31353 L4_MABX_B.SFunction1_o17 = L4_MABX_P.SPN1854_TransmissionMode3_Y0;
31354
31355 /* SystemInitialize for Outport: '<S627>/SPN1855_TransmissionMode4' */
31356 L4_MABX_B.SFunction1_o18 = L4_MABX_P.SPN1855_TransmissionMode4_Y0;
31357
31358 /* SystemInitialize for Outport: '<S627>/SPN7695_TransAutoNeutralRequest' */
31359 L4_MABX_B.SFunction1_o19 = L4_MABX_P.SPN7695_TransAutoNeutralRequest;
31360
31361 /* SystemInitialize for Outport: '<S627>/SPN4255_TransRequestedLaunchGear' */
31362 L4_MABX_B.SFunction1_o20 = L4_MABX_P.SPN4255_TransRequestedLaunchGea;
31363
31364 /* SystemInitialize for Outport: '<S627>/SPN2985_TransShiftSelDispModeSw' */
31365 L4_MABX_B.SFunction1_o21 = L4_MABX_P.SPN2985_TransShiftSelDispModeSw;
31366
31367 /* SystemInitialize for Outport: '<S627>/SPN4246_TransmissionMode5' */
31368 L4_MABX_B.SFunction1_o22 = L4_MABX_P.SPN4246_TransmissionMode5_Y0;
31369
31370 /* SystemInitialize for Outport: '<S627>/SPN4247_TransmissionMode6' */
31371 L4_MABX_B.SFunction1_o23 = L4_MABX_P.SPN4247_TransmissionMode6_Y0;
31372
31373 /* SystemInitialize for Outport: '<S627>/SPN4248_TransmissionMode7' */
31374 L4_MABX_B.SFunction1_o24 = L4_MABX_P.SPN4248_TransmissionMode7_Y0;
31375
31376 /* SystemInitialize for Outport: '<S627>/SPN4249_TransmissionMode8' */
31377 L4_MABX_B.SFunction1_o25 = L4_MABX_P.SPN4249_TransmissionMode8_Y0;
31378
31379 /* SystemInitialize for Outport: '<S627>/RX status' */
31380 L4_MABX_B.SFunction1_o26 = L4_MABX_P.RXstatus_Y0_jo;
31381
31382 /* SystemInitialize for Outport: '<S627>/RX time' */
31383 L4_MABX_B.SFunction1_o27 = L4_MABX_P.RXtime_Y0_hx;
31384
31385 /* SystemInitialize for Outport: '<S627>/RX delta time' */
31386 L4_MABX_B.SFunction1_o28 = L4_MABX_P.RXdeltatime_Y0_ou;
31387
31388 /* End of SystemInitialize for SubSystem: '<S626>/TC1_03_05' */
31389
31390 /* SystemInitialize for Atomic SubSystem: '<S815>/CAN_TX_50ms' */
31391 /* SystemInitialize for Enabled SubSystem: '<S1020>/CCVS1_E3' */
31392 /* SystemInitialize for Outport: '<S1022>/TX status' */
31393 L4_MABX_B.SFunction1_o1_b = L4_MABX_P.TXstatus_Y0_ev;
31394
31395 /* SystemInitialize for Outport: '<S1022>/TX time' */
31396 L4_MABX_B.SFunction1_o2_b = L4_MABX_P.TXtime_Y0_ma;
31397
31398 /* SystemInitialize for Outport: '<S1022>/TX delta time' */
31399 L4_MABX_B.SFunction1_o3_j = L4_MABX_P.TXdeltatime_Y0_i4;
31400
31401 /* SystemInitialize for Outport: '<S1022>/TX delay time' */
31402 L4_MABX_B.SFunction1_o4_e = L4_MABX_P.TXdelaytime_Y0_na;
31403
31404 /* End of SystemInitialize for SubSystem: '<S1020>/CCVS1_E3' */
31405
31406 /* SystemInitialize for Enabled SubSystem: '<S1021>/TC1_03_05' */
31407 /* SystemInitialize for Outport: '<S1023>/TX status' */
31408 L4_MABX_B.SFunction1_o1_g = L4_MABX_P.TXstatus_Y0_cz;
31409
31410 /* SystemInitialize for Outport: '<S1023>/TX time' */
31411 L4_MABX_B.SFunction1_o2_j = L4_MABX_P.TXtime_Y0_cn;
31412
31413 /* SystemInitialize for Outport: '<S1023>/TX delta time' */
31414 L4_MABX_B.SFunction1_o3_p = L4_MABX_P.TXdeltatime_Y0_ci;
31415
31416 /* SystemInitialize for Outport: '<S1023>/TX delay time' */
31417 L4_MABX_B.SFunction1_o4_p = L4_MABX_P.TXdelaytime_Y0_nk;
31418
31419 /* End of SystemInitialize for SubSystem: '<S1021>/TC1_03_05' */
31420 /* End of SystemInitialize for SubSystem: '<S815>/CAN_TX_50ms' */
31421
31422 /* SystemInitialize for Enabled SubSystem: '<S624>/SystemTime_01' */
31423 /* SystemInitialize for Outport: '<S625>/SID' */
31424 L4_MABX_B.SFunction1_o1_lg = L4_MABX_P.SID_Y0_e;
31425
31426 /* SystemInitialize for Outport: '<S625>/Source' */
31427 L4_MABX_B.SFunction1_o2_cb = L4_MABX_P.Source_Y0;
31428
31429 /* SystemInitialize for Outport: '<S625>/Date' */
31430 L4_MABX_B.SFunction1_o3_ka = L4_MABX_P.Date_Y0;
31431
31432 /* SystemInitialize for Outport: '<S625>/Time' */
31433 L4_MABX_B.SFunction1_o4_k = L4_MABX_P.Time_Y0;
31434
31435 /* SystemInitialize for Outport: '<S625>/RX status' */
31436 L4_MABX_B.SFunction1_o5_h = L4_MABX_P.RXstatus_Y0_f2;
31437
31438 /* SystemInitialize for Outport: '<S625>/RX time' */
31439 L4_MABX_B.SFunction1_o6_nm = L4_MABX_P.RXtime_Y0_ib;
31440
31441 /* SystemInitialize for Outport: '<S625>/RX delta time' */
31442 L4_MABX_B.SFunction1_o7_ci = L4_MABX_P.RXdeltatime_Y0_k3;
31443
31444 /* End of SystemInitialize for SubSystem: '<S624>/SystemTime_01' */
31445
31446 /* SystemInitialize for Enabled SubSystem: '<S1033>/Std_SystemTime_01' */
31447 /* SystemInitialize for Outport: '<S1035>/TX status' */
31448 L4_MABX_B.SFunction1_o1_j = L4_MABX_P.TXstatus_Y0_lx;
31449
31450 /* SystemInitialize for Outport: '<S1035>/TX time' */
31451 L4_MABX_B.SFunction1_o2_g = L4_MABX_P.TXtime_Y0_aw;
31452
31453 /* SystemInitialize for Outport: '<S1035>/TX delta time' */
31454 L4_MABX_B.SFunction1_o3 = L4_MABX_P.TXdeltatime_Y0_h;
31455
31456 /* SystemInitialize for Outport: '<S1035>/TX delay time' */
31457 L4_MABX_B.SFunction1_o4 = L4_MABX_P.TXdelaytime_Y0_fu;
31458
31459 /* End of SystemInitialize for SubSystem: '<S1033>/Std_SystemTime_01' */
31460
31461 /* SystemInitialize for Triggered SubSystem: '<S1028>/CAN_TYPE1_TX_M1_C1' */
31462 /* SystemInitialize for Outport: '<S1030>/TX status' */
31463 L4_MABX_B.SFunction1_o1_p = L4_MABX_P.TXstatus_Y0_d;
31464
31465 /* SystemInitialize for Outport: '<S1030>/TX time' */
31466 L4_MABX_B.SFunction1_o2_m = L4_MABX_P.TXtime_Y0_h;
31467
31468 /* SystemInitialize for Outport: '<S1030>/TX delta time' */
31469 L4_MABX_B.SFunction1_o3_g = L4_MABX_P.TXdeltatime_Y0_d4;
31470
31471 /* SystemInitialize for Outport: '<S1030>/TX delay time' */
31472 L4_MABX_B.SFunction1_o4_c = L4_MABX_P.TXdelaytime_Y0_a;
31473
31474 /* End of SystemInitialize for SubSystem: '<S1028>/CAN_TYPE1_TX_M1_C1' */
31475
31476 /* SystemInitialize for Triggered SubSystem: '<S1029>/CAN_TYPE1_TX_M1_C1' */
31477 /* SystemInitialize for Outport: '<S1031>/TX status' */
31478 L4_MABX_B.SFunction1_o1_m = L4_MABX_P.TXstatus_Y0_g;
31479
31480 /* SystemInitialize for Outport: '<S1031>/TX time' */
31481 L4_MABX_B.SFunction1_o2_l = L4_MABX_P.TXtime_Y0_au;
31482
31483 /* SystemInitialize for Outport: '<S1031>/TX delta time' */
31484 L4_MABX_B.SFunction1_o3_h = L4_MABX_P.TXdeltatime_Y0_np;
31485
31486 /* SystemInitialize for Outport: '<S1031>/TX delay time' */
31487 L4_MABX_B.SFunction1_o4_l = L4_MABX_P.TXdelaytime_Y0_ap;
31488
31489 /* End of SystemInitialize for SubSystem: '<S1029>/CAN_TYPE1_TX_M1_C1' */
31490
31491 /* SystemInitialize for Chart: '<S825>/Chart' */
31492 L4_MABX_DW.temporalCounter_i1_b = 0U;
31493 L4_MABX_DW.is_active_c4_SUB_ECU_L4_MABX_HW = 0U;
31494 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_NO_ACTIVE_CHILD;
31495
31496 /* SystemInitialize for Enabled SubSystem: '<S559>/GNSSDOPs_011' */
31497 /* SystemInitialize for Outport: '<S560>/SID' */
31498 L4_MABX_B.SFunction1_o1_dm = L4_MABX_P.SID_Y0_a;
31499
31500 /* SystemInitialize for Outport: '<S560>/SetMode' */
31501 L4_MABX_B.SFunction1_o2_az = L4_MABX_P.SetMode_Y0;
31502
31503 /* SystemInitialize for Outport: '<S560>/OpMode' */
31504 L4_MABX_B.SFunction1_o3_fh = L4_MABX_P.OpMode_Y0;
31505
31506 /* SystemInitialize for Outport: '<S560>/HDOP_' */
31507 L4_MABX_B.SFunction1_o4_mb = L4_MABX_P.HDOP_Y0;
31508
31509 /* SystemInitialize for Outport: '<S560>/VDOP' */
31510 L4_MABX_B.SFunction1_o5_no = L4_MABX_P.VDOP_Y0;
31511
31512 /* SystemInitialize for Outport: '<S560>/TDOP' */
31513 L4_MABX_B.SFunction1_o6_gq = L4_MABX_P.TDOP_Y0;
31514
31515 /* SystemInitialize for Outport: '<S560>/RX status' */
31516 L4_MABX_B.SFunction1_o7_oj = L4_MABX_P.RXstatus_Y0_da;
31517
31518 /* SystemInitialize for Outport: '<S560>/RX time' */
31519 L4_MABX_B.SFunction1_o8_ia = L4_MABX_P.RXtime_Y0_my;
31520
31521 /* SystemInitialize for Outport: '<S560>/RX delta time' */
31522 L4_MABX_B.SFunction1_o9_n = L4_MABX_P.RXdeltatime_Y0_hg;
31523
31524 /* End of SystemInitialize for SubSystem: '<S559>/GNSSDOPs_011' */
31525
31526 /* SystemInitialize for Enabled SubSystem: '<S559>/GNSSDOPs_1' */
31527 /* SystemInitialize for Outport: '<S561>/SID' */
31528 L4_MABX_B.SFunction1_o1_gi = L4_MABX_P.SID_Y0_h;
31529
31530 /* SystemInitialize for Outport: '<S561>/SetMode' */
31531 L4_MABX_B.SFunction1_o2_j0 = L4_MABX_P.SetMode_Y0_c;
31532
31533 /* SystemInitialize for Outport: '<S561>/OpMode' */
31534 L4_MABX_B.SFunction1_o3_i5 = L4_MABX_P.OpMode_Y0_c;
31535
31536 /* SystemInitialize for Outport: '<S561>/HDOP_' */
31537 L4_MABX_B.SFunction1_o4_pd = L4_MABX_P.HDOP_Y0_j;
31538
31539 /* SystemInitialize for Outport: '<S561>/VDOP' */
31540 L4_MABX_B.SFunction1_o5_iw = L4_MABX_P.VDOP_Y0_h;
31541
31542 /* SystemInitialize for Outport: '<S561>/TDOP' */
31543 L4_MABX_B.SFunction1_o6_gf = L4_MABX_P.TDOP_Y0_m;
31544
31545 /* SystemInitialize for Outport: '<S561>/RX status' */
31546 L4_MABX_B.SFunction1_o7_j = L4_MABX_P.RXstatus_Y0_j;
31547
31548 /* SystemInitialize for Outport: '<S561>/RX time' */
31549 L4_MABX_B.SFunction1_o8_mf = L4_MABX_P.RXtime_Y0_e;
31550
31551 /* SystemInitialize for Outport: '<S561>/RX delta time' */
31552 L4_MABX_B.SFunction1_o9_g4 = L4_MABX_P.RXdeltatime_Y0_f2;
31553
31554 /* End of SystemInitialize for SubSystem: '<S559>/GNSSDOPs_1' */
31555
31556 /* SystemInitialize for Atomic SubSystem: '<S65>/Task_20ms' */
31557 /* InitializeConditions for UnitDelay: '<S382>/Unit Delay1' */
31558 L4_MABX_DW.UnitDelay1_DSTATE = L4_MABX_P.UnitDelay1_InitialCondition_p;
31559
31560 /* InitializeConditions for DiscreteIntegrator: '<S383>/LongitudnalPosition' */
31561 L4_MABX_DW.LongitudnalPosition_DSTATE = L4_MABX_B.InitialPosition;
31562 L4_MABX_DW.LongitudnalPosition_PrevResetSt = 2;
31563
31564 /* InitializeConditions for DiscreteIntegrator: '<S383>/VehHeading' */
31565 L4_MABX_DW.VehHeading_DSTATE = L4_MABX_B.InitialHeading;
31566 L4_MABX_DW.VehHeading_PrevResetState = 2;
31567
31568 /* InitializeConditions for DiscreteIntegrator: '<S383>/XPosition' */
31569 L4_MABX_DW.XPosition_DSTATE = L4_MABX_B.InitialXPosition;
31570 L4_MABX_DW.XPosition_PrevResetState = 2;
31571
31572 /* InitializeConditions for DiscreteIntegrator: '<S383>/YPosition' */
31573 L4_MABX_DW.YPosition_DSTATE = L4_MABX_B.InitialYPosition;
31574 L4_MABX_DW.YPosition_PrevResetState = 2;
31575
31576 /* End of SystemInitialize for SubSystem: '<S65>/Task_20ms' */
31577
31578 /* SystemInitialize for S-Function (rti_commonblock): '<S394>/S-Function1' incorporates:
31579 * SubSystem: '<S386>/Background_Task'
31580 */
31581 L4_MAB_Background_Task_Init();
31582
31583 /* End of SystemInitialize for S-Function (rti_commonblock): '<S394>/S-Function1' */
31584
31585 /* SystemInitialize for S-Function (rti_commonblock): '<S400>/S-Function1' incorporates:
31586 * SubSystem: '<S386>/Interrupt_Task'
31587 */
31588 L4_MABX_Interrupt_Task_Init();
31589
31590 /* End of SystemInitialize for S-Function (rti_commonblock): '<S400>/S-Function1' */
31591
31592 /* SystemInitialize for Enabled SubSystem: '<S481>/AEBS1_A0' */
31593 /* SystemInitialize for Outport: '<S482>/AdvEmergencyBrkSysState' */
31594 L4_MABX_B.SFunction1_o1_ea = L4_MABX_P.AdvEmergencyBrkSysState_Y0;
31595
31596 /* SystemInitialize for Outport: '<S482>/CollisionWarningLevel' */
31597 L4_MABX_B.SFunction1_o2_gq = L4_MABX_P.CollisionWarningLevel_Y0;
31598
31599 /* SystemInitialize for Outport: '<S482>/RelObjctDetForAdvEmergBrakingSys' */
31600 L4_MABX_B.SFunction1_o3_ewv = L4_MABX_P.RelObjctDetForAdvEmergBrakingSy;
31601
31602 /* SystemInitialize for Outport: '<S482>/BendOffProbabOfRelevantObject' */
31603 L4_MABX_B.SFunction1_o4_gc = L4_MABX_P.BendOffProbabOfRelevantObject_Y;
31604
31605 /* SystemInitialize for Outport: '<S482>/TimeToCollisionWithRelevantObj' */
31606 L4_MABX_B.SFunction1_o5_aj = L4_MABX_P.TimeToCollisionWithRelevantObj_;
31607
31608 /* SystemInitialize for Outport: '<S482>/RX status' */
31609 L4_MABX_B.SFunction1_o6_l = L4_MABX_P.RXstatus_Y0_n;
31610
31611 /* SystemInitialize for Outport: '<S482>/RX time' */
31612 L4_MABX_B.SFunction1_o7_a = L4_MABX_P.RXtime_Y0_l;
31613
31614 /* SystemInitialize for Outport: '<S482>/RX delta time' */
31615 L4_MABX_B.SFunction1_o8_if = L4_MABX_P.RXdeltatime_Y0_m;
31616
31617 /* End of SystemInitialize for SubSystem: '<S481>/AEBS1_A0' */
31618
31619 /* SystemInitialize for Enabled SubSystem: '<S487>/B2' */
31620 /* SystemInitialize for Outport: '<S488>/BrakeAppPressDemanded' */
31621 L4_MABX_B.SFunction1_o1_pf = L4_MABX_P.BrakeAppPressDemanded_Y0;
31622
31623 /* SystemInitialize for Outport: '<S488>/BrakeSwitch2' */
31624 L4_MABX_B.SFunction1_o2_ny = L4_MABX_P.BrakeSwitch2_Y0;
31625
31626 /* SystemInitialize for Outport: '<S488>/RX status' */
31627 L4_MABX_B.SFunction1_o3_ig = L4_MABX_P.RXstatus_Y0_m;
31628
31629 /* SystemInitialize for Outport: '<S488>/RX time' */
31630 L4_MABX_B.SFunction1_o4_fo = L4_MABX_P.RXtime_Y0_g;
31631
31632 /* SystemInitialize for Outport: '<S488>/RX delta time' */
31633 L4_MABX_B.SFunction1_o5_dt = L4_MABX_P.RXdeltatime_Y0_h;
31634
31635 /* End of SystemInitialize for SubSystem: '<S487>/B2' */
31636
31637 /* SystemInitialize for Enabled SubSystem: '<S489>/Tracks' */
31638 /* SystemInitialize for Outport: '<S490>/tr0_track_selection_status' */
31639 L4_MABX_B.SFunction1_o1_ct = L4_MABX_P.tr0_track_selection_status_Y0;
31640
31641 /* SystemInitialize for Outport: '<S490>/tr0_corrected_lateral_distance' */
31642 L4_MABX_B.SFunction1_o2_ka = L4_MABX_P.tr0_corrected_lateral_distance_;
31643
31644 /* SystemInitialize for Outport: '<S490>/tr1_track_selection_status' */
31645 L4_MABX_B.SFunction1_o3_ilz = L4_MABX_P.tr1_track_selection_status_Y0;
31646
31647 /* SystemInitialize for Outport: '<S490>/tr1_corrected_lateral_distance' */
31648 L4_MABX_B.SFunction1_o4_jm2 = L4_MABX_P.tr1_corrected_lateral_distance_;
31649
31650 /* SystemInitialize for Outport: '<S490>/tr2_track_selection_status' */
31651 L4_MABX_B.SFunction1_o5_oc = L4_MABX_P.tr2_track_selection_status_Y0;
31652
31653 /* SystemInitialize for Outport: '<S490>/tr2_corrected_lateral_distance' */
31654 L4_MABX_B.SFunction1_o6_nx = L4_MABX_P.tr2_corrected_lateral_distance_;
31655
31656 /* SystemInitialize for Outport: '<S490>/tr3_track_selection_status' */
31657 L4_MABX_B.SFunction1_o7_bz = L4_MABX_P.tr3_track_selection_status_Y0;
31658
31659 /* SystemInitialize for Outport: '<S490>/tr3_corrected_lateral_distance' */
31660 L4_MABX_B.SFunction1_o8_f = L4_MABX_P.tr3_corrected_lateral_distance_;
31661
31662 /* SystemInitialize for Outport: '<S490>/tr4_track_selection_status' */
31663 L4_MABX_B.SFunction1_o9_mc = L4_MABX_P.tr4_track_selection_status_Y0;
31664
31665 /* SystemInitialize for Outport: '<S490>/tr4_corrected_lateral_distance' */
31666 L4_MABX_B.SFunction1_o10_iw = L4_MABX_P.tr4_corrected_lateral_distance_;
31667
31668 /* SystemInitialize for Outport: '<S490>/tr5_track_selection_status' */
31669 L4_MABX_B.SFunction1_o11_p = L4_MABX_P.tr5_track_selection_status_Y0;
31670
31671 /* SystemInitialize for Outport: '<S490>/tr5_corrected_lateral_distance' */
31672 L4_MABX_B.SFunction1_o12_bs = L4_MABX_P.tr5_corrected_lateral_distance_;
31673
31674 /* SystemInitialize for Outport: '<S490>/tr6_track_selection_status' */
31675 L4_MABX_B.SFunction1_o13_f = L4_MABX_P.tr6_track_selection_status_Y0;
31676
31677 /* SystemInitialize for Outport: '<S490>/tr6_corrected_lateral_distance' */
31678 L4_MABX_B.SFunction1_o14_ks = L4_MABX_P.tr6_corrected_lateral_distance_;
31679
31680 /* SystemInitialize for Outport: '<S490>/tr7_track_selection_status' */
31681 L4_MABX_B.SFunction1_o15_g = L4_MABX_P.tr7_track_selection_status_Y0;
31682
31683 /* SystemInitialize for Outport: '<S490>/tr7_corrected_lateral_distance' */
31684 L4_MABX_B.SFunction1_o16_e4 = L4_MABX_P.tr7_corrected_lateral_distance_;
31685
31686 /* SystemInitialize for Outport: '<S490>/tr8_track_selection_status' */
31687 L4_MABX_B.SFunction1_o17_g = L4_MABX_P.tr8_track_selection_status_Y0;
31688
31689 /* SystemInitialize for Outport: '<S490>/tr8_corrected_lateral_distance' */
31690 L4_MABX_B.SFunction1_o18_g = L4_MABX_P.tr8_corrected_lateral_distance_;
31691
31692 /* SystemInitialize for Outport: '<S490>/tr9_track_selection_status' */
31693 L4_MABX_B.SFunction1_o19_g = L4_MABX_P.tr9_track_selection_status_Y0;
31694
31695 /* SystemInitialize for Outport: '<S490>/tr9_corrected_lateral_distance' */
31696 L4_MABX_B.SFunction1_o20_o = L4_MABX_P.tr9_corrected_lateral_distance_;
31697
31698 /* SystemInitialize for Outport: '<S490>/tr0_lateral_position' */
31699 L4_MABX_B.SFunction1_o21_b = L4_MABX_P.tr0_lateral_position_Y0;
31700
31701 /* SystemInitialize for Outport: '<S490>/tr1_lateral_position' */
31702 L4_MABX_B.SFunction1_o22_b = L4_MABX_P.tr1_lateral_position_Y0;
31703
31704 /* SystemInitialize for Outport: '<S490>/tr2_lateral_position' */
31705 L4_MABX_B.SFunction1_o23_k = L4_MABX_P.tr2_lateral_position_Y0;
31706
31707 /* SystemInitialize for Outport: '<S490>/tr3_lateral_position' */
31708 L4_MABX_B.SFunction1_o24_l = L4_MABX_P.tr3_lateral_position_Y0;
31709
31710 /* SystemInitialize for Outport: '<S490>/tr4_lateral_position' */
31711 L4_MABX_B.SFunction1_o25_g = L4_MABX_P.tr4_lateral_position_Y0;
31712
31713 /* SystemInitialize for Outport: '<S490>/tr5_lateral_position' */
31714 L4_MABX_B.SFunction1_o26_j = L4_MABX_P.tr5_lateral_position_Y0;
31715
31716 /* SystemInitialize for Outport: '<S490>/tr6_lateral_position' */
31717 L4_MABX_B.SFunction1_o27_c = L4_MABX_P.tr6_lateral_position_Y0;
31718
31719 /* SystemInitialize for Outport: '<S490>/tr7_lateral_position' */
31720 L4_MABX_B.SFunction1_o28_f = L4_MABX_P.tr7_lateral_position_Y0;
31721
31722 /* SystemInitialize for Outport: '<S490>/tr8_lateral_position' */
31723 L4_MABX_B.SFunction1_o29 = L4_MABX_P.tr8_lateral_position_Y0;
31724
31725 /* SystemInitialize for Outport: '<S490>/tr9_lateral_position' */
31726 L4_MABX_B.SFunction1_o30 = L4_MABX_P.tr9_lateral_position_Y0;
31727
31728 /* SystemInitialize for Outport: '<S490>/tr0_range' */
31729 L4_MABX_B.SFunction1_o31 = L4_MABX_P.tr0_range_Y0;
31730
31731 /* SystemInitialize for Outport: '<S490>/tr1_range' */
31732 L4_MABX_B.SFunction1_o32 = L4_MABX_P.tr1_range_Y0;
31733
31734 /* SystemInitialize for Outport: '<S490>/tr2_range' */
31735 L4_MABX_B.SFunction1_o33 = L4_MABX_P.tr2_range_Y0;
31736
31737 /* SystemInitialize for Outport: '<S490>/tr3_range' */
31738 L4_MABX_B.SFunction1_o34 = L4_MABX_P.tr3_range_Y0;
31739
31740 /* SystemInitialize for Outport: '<S490>/tr4_range' */
31741 L4_MABX_B.SFunction1_o35 = L4_MABX_P.tr4_range_Y0;
31742
31743 /* SystemInitialize for Outport: '<S490>/tr5_range' */
31744 L4_MABX_B.SFunction1_o36 = L4_MABX_P.tr5_range_Y0;
31745
31746 /* SystemInitialize for Outport: '<S490>/tr6_range' */
31747 L4_MABX_B.SFunction1_o37 = L4_MABX_P.tr6_range_Y0;
31748
31749 /* SystemInitialize for Outport: '<S490>/tr7_range' */
31750 L4_MABX_B.SFunction1_o38 = L4_MABX_P.tr7_range_Y0;
31751
31752 /* SystemInitialize for Outport: '<S490>/tr8_range' */
31753 L4_MABX_B.SFunction1_o39 = L4_MABX_P.tr8_range_Y0;
31754
31755 /* SystemInitialize for Outport: '<S490>/tr9_range' */
31756 L4_MABX_B.SFunction1_o40 = L4_MABX_P.tr9_range_Y0;
31757
31758 /* SystemInitialize for Outport: '<S490>/tr0_radar_confidence' */
31759 L4_MABX_B.SFunction1_o41 = L4_MABX_P.tr0_radar_confidence_Y0;
31760
31761 /* SystemInitialize for Outport: '<S490>/tr1_radar_confidence' */
31762 L4_MABX_B.SFunction1_o42 = L4_MABX_P.tr1_radar_confidence_Y0;
31763
31764 /* SystemInitialize for Outport: '<S490>/tr2_radar_confidence' */
31765 L4_MABX_B.SFunction1_o43 = L4_MABX_P.tr2_radar_confidence_Y0;
31766
31767 /* SystemInitialize for Outport: '<S490>/tr3_radar_confidence' */
31768 L4_MABX_B.SFunction1_o44 = L4_MABX_P.tr3_radar_confidence_Y0;
31769
31770 /* SystemInitialize for Outport: '<S490>/tr4_radar_confidence' */
31771 L4_MABX_B.SFunction1_o45 = L4_MABX_P.tr4_radar_confidence_Y0;
31772
31773 /* SystemInitialize for Outport: '<S490>/tr5_radar_confidence' */
31774 L4_MABX_B.SFunction1_o46 = L4_MABX_P.tr5_radar_confidence_Y0;
31775
31776 /* SystemInitialize for Outport: '<S490>/tr6_radar_confidence' */
31777 L4_MABX_B.SFunction1_o47 = L4_MABX_P.tr6_radar_confidence_Y0;
31778
31779 /* SystemInitialize for Outport: '<S490>/tr7_radar_confidence' */
31780 L4_MABX_B.SFunction1_o48 = L4_MABX_P.tr7_radar_confidence_Y0;
31781
31782 /* SystemInitialize for Outport: '<S490>/tr8_radar_confidence' */
31783 L4_MABX_B.SFunction1_o49 = L4_MABX_P.tr8_radar_confidence_Y0;
31784
31785 /* SystemInitialize for Outport: '<S490>/tr9_radar_confidence' */
31786 L4_MABX_B.SFunction1_o50 = L4_MABX_P.tr9_radar_confidence_Y0;
31787
31788 /* SystemInitialize for Outport: '<S490>/tr0_relative_velocitiy' */
31789 L4_MABX_B.SFunction1_o51 = L4_MABX_P.tr0_relative_velocitiy_Y0;
31790
31791 /* SystemInitialize for Outport: '<S490>/tr0_acceleration_over_ground' */
31792 L4_MABX_B.SFunction1_o52 = L4_MABX_P.tr0_acceleration_over_ground_Y0;
31793
31794 /* SystemInitialize for Outport: '<S490>/tr1_relative_velocitiy' */
31795 L4_MABX_B.SFunction1_o53 = L4_MABX_P.tr1_relative_velocitiy_Y0;
31796
31797 /* SystemInitialize for Outport: '<S490>/tr1_acceleration_over_ground' */
31798 L4_MABX_B.SFunction1_o54 = L4_MABX_P.tr1_acceleration_over_ground_Y0;
31799
31800 /* SystemInitialize for Outport: '<S490>/tr2_relative_velocitiy' */
31801 L4_MABX_B.SFunction1_o55 = L4_MABX_P.tr2_relative_velocitiy_Y0;
31802
31803 /* SystemInitialize for Outport: '<S490>/tr2_acceleration_over_ground' */
31804 L4_MABX_B.SFunction1_o56 = L4_MABX_P.tr2_acceleration_over_ground_Y0;
31805
31806 /* SystemInitialize for Outport: '<S490>/tr3_relative_velocitiy' */
31807 L4_MABX_B.SFunction1_o57 = L4_MABX_P.tr3_relative_velocitiy_Y0;
31808
31809 /* SystemInitialize for Outport: '<S490>/tr3_acceleration_over_ground' */
31810 L4_MABX_B.SFunction1_o58 = L4_MABX_P.tr3_acceleration_over_ground_Y0;
31811
31812 /* SystemInitialize for Outport: '<S490>/tr4_relative_velocitiy' */
31813 L4_MABX_B.SFunction1_o59 = L4_MABX_P.tr4_relative_velocitiy_Y0;
31814
31815 /* SystemInitialize for Outport: '<S490>/tr4_acceleration_over_ground' */
31816 L4_MABX_B.SFunction1_o60 = L4_MABX_P.tr4_acceleration_over_ground_Y0;
31817
31818 /* SystemInitialize for Outport: '<S490>/tr5_relative_velocitiy' */
31819 L4_MABX_B.SFunction1_o61 = L4_MABX_P.tr5_relative_velocitiy_Y0;
31820
31821 /* SystemInitialize for Outport: '<S490>/tr5_acceleration_over_ground' */
31822 L4_MABX_B.SFunction1_o62 = L4_MABX_P.tr5_acceleration_over_ground_Y0;
31823
31824 /* SystemInitialize for Outport: '<S490>/tr6_relative_velocitiy' */
31825 L4_MABX_B.SFunction1_o63 = L4_MABX_P.tr6_relative_velocitiy_Y0;
31826
31827 /* SystemInitialize for Outport: '<S490>/tr6_acceleration_over_ground' */
31828 L4_MABX_B.SFunction1_o64 = L4_MABX_P.tr6_acceleration_over_ground_Y0;
31829
31830 /* SystemInitialize for Outport: '<S490>/tr7_relative_velocitiy' */
31831 L4_MABX_B.SFunction1_o65 = L4_MABX_P.tr7_relative_velocitiy_Y0;
31832
31833 /* SystemInitialize for Outport: '<S490>/tr7_acceleration_over_ground' */
31834 L4_MABX_B.SFunction1_o66 = L4_MABX_P.tr7_acceleration_over_ground_Y0;
31835
31836 /* SystemInitialize for Outport: '<S490>/tr8_relative_velocitiy' */
31837 L4_MABX_B.SFunction1_o67 = L4_MABX_P.tr8_relative_velocitiy_Y0;
31838
31839 /* SystemInitialize for Outport: '<S490>/tr8_acceleration_over_ground' */
31840 L4_MABX_B.SFunction1_o68 = L4_MABX_P.tr8_acceleration_over_ground_Y0;
31841
31842 /* SystemInitialize for Outport: '<S490>/tr9_relative_velocitiy' */
31843 L4_MABX_B.SFunction1_o69 = L4_MABX_P.tr9_relative_velocitiy_Y0;
31844
31845 /* SystemInitialize for Outport: '<S490>/tr9_acceleration_over_ground' */
31846 L4_MABX_B.SFunction1_o70 = L4_MABX_P.tr9_acceleration_over_ground_Y0;
31847
31848 /* SystemInitialize for Outport: '<S490>/track_multiplexor' */
31849 L4_MABX_B.SFunction1_o71 = L4_MABX_P.track_multiplexor_Y0;
31850
31851 /* SystemInitialize for Outport: '<S490>/RX status' */
31852 L4_MABX_B.SFunction1_o72 = L4_MABX_P.RXstatus_Y0_e;
31853
31854 /* SystemInitialize for Outport: '<S490>/RX time' */
31855 L4_MABX_B.SFunction1_o73 = L4_MABX_P.RXtime_Y0_om;
31856
31857 /* SystemInitialize for Outport: '<S490>/RX delta time' */
31858 L4_MABX_B.SFunction1_o74 = L4_MABX_P.RXdeltatime_Y0_a;
31859
31860 /* End of SystemInitialize for SubSystem: '<S489>/Tracks' */
31861
31862 /* SystemInitialize for Enabled SubSystem: '<S500>/EBC1_0B' */
31863 /* SystemInitialize for Outport: '<S501>/ASREngCtrlActive' */
31864 L4_MABX_B.SFunction1_o1_gyc = L4_MABX_P.ASREngCtrlActive_Y0;
31865
31866 /* SystemInitialize for Outport: '<S501>/ASRBrakeCtrlActive' */
31867 L4_MABX_B.SFunction1_o2_dd = L4_MABX_P.ASRBrakeCtrlActive_Y0;
31868
31869 /* SystemInitialize for Outport: '<S501>/AntiLockBrakingActive' */
31870 L4_MABX_B.SFunction1_o3_n2k = L4_MABX_P.AntiLockBrakingActive_Y0;
31871
31872 /* SystemInitialize for Outport: '<S501>/EBSBrakeSwitch' */
31873 L4_MABX_B.SFunction1_o4_ke = L4_MABX_P.EBSBrakeSwitch_Y0;
31874
31875 /* SystemInitialize for Outport: '<S501>/BrakePedalPos' */
31876 L4_MABX_B.SFunction1_o5_jf = L4_MABX_P.BrakePedalPos_Y0;
31877
31878 /* SystemInitialize for Outport: '<S501>/ABSOffroadSwitch' */
31879 L4_MABX_B.SFunction1_o6_ky = L4_MABX_P.ABSOffroadSwitch_Y0;
31880
31881 /* SystemInitialize for Outport: '<S501>/ASROffroadSwitch' */
31882 L4_MABX_B.SFunction1_o7_kx = L4_MABX_P.ASROffroadSwitch_Y0;
31883
31884 /* SystemInitialize for Outport: '<S501>/ASRHillHolderSwitch' */
31885 L4_MABX_B.SFunction1_o8_ga = L4_MABX_P.ASRHillHolderSwitch_Y0;
31886
31887 /* SystemInitialize for Outport: '<S501>/TractionCtrlOverrideSwitch' */
31888 L4_MABX_B.SFunction1_o9_oq = L4_MABX_P.TractionCtrlOverrideSwitch_Y0;
31889
31890 /* SystemInitialize for Outport: '<S501>/AccelInterlockSwitch' */
31891 L4_MABX_B.SFunction1_o10_gi = L4_MABX_P.AccelInterlockSwitch_Y0;
31892
31893 /* SystemInitialize for Outport: '<S501>/EngDerateSwitch' */
31894 L4_MABX_B.SFunction1_o11_gr = L4_MABX_P.EngDerateSwitch_Y0;
31895
31896 /* SystemInitialize for Outport: '<S501>/EngAuxShutdownSwitch' */
31897 L4_MABX_B.SFunction1_o12_b = L4_MABX_P.EngAuxShutdownSwitch_Y0;
31898
31899 /* SystemInitialize for Outport: '<S501>/RemoteAccelEnableSwitch' */
31900 L4_MABX_B.SFunction1_o13_d = L4_MABX_P.RemoteAccelEnableSwitch_Y0;
31901
31902 /* SystemInitialize for Outport: '<S501>/EngRetarderSelection' */
31903 L4_MABX_B.SFunction1_o14_k = L4_MABX_P.EngRetarderSelection_Y0;
31904
31905 /* SystemInitialize for Outport: '<S501>/ABSFullyOperational' */
31906 L4_MABX_B.SFunction1_o15_ex = L4_MABX_P.ABSFullyOperational_Y0;
31907
31908 /* SystemInitialize for Outport: '<S501>/EBSRedWarningSignal' */
31909 L4_MABX_B.SFunction1_o16_pu = L4_MABX_P.EBSRedWarningSignal_Y0;
31910
31911 /* SystemInitialize for Outport: '<S501>/ABS_EBSAmberWarningSignal' */
31912 L4_MABX_B.SFunction1_o17_h = L4_MABX_P.ABS_EBSAmberWarningSignal_Y0;
31913
31914 /* SystemInitialize for Outport: '<S501>/ATC_ASRInformationSignal' */
31915 L4_MABX_B.SFunction1_o18_c = L4_MABX_P.ATC_ASRInformationSignal_Y0;
31916
31917 /* SystemInitialize for Outport: '<S501>/SrcAddrssOfCtrllngDvcFrBrkCntrl' */
31918 L4_MABX_B.SFunction1_o19_f = L4_MABX_P.SrcAddrssOfCtrllngDvcFrBrkCntrl;
31919
31920 /* SystemInitialize for Outport: '<S501>/HaltBrakeSwitch' */
31921 L4_MABX_B.SFunction1_o20_l = L4_MABX_P.HaltBrakeSwitch_Y0;
31922
31923 /* SystemInitialize for Outport: '<S501>/TrailerABSStatus' */
31924 L4_MABX_B.SFunction1_o21_k = L4_MABX_P.TrailerABSStatus_Y0;
31925
31926 /* SystemInitialize for Outport: '<S501>/TrctrMntdTrilerABSWarningSignal' */
31927 L4_MABX_B.SFunction1_o22_f = L4_MABX_P.TrctrMntdTrilerABSWarningSignal;
31928
31929 /* SystemInitialize for Outport: '<S501>/RX status' */
31930 L4_MABX_B.SFunction1_o23_d = L4_MABX_P.RXstatus_Y0_dn;
31931
31932 /* SystemInitialize for Outport: '<S501>/RX time' */
31933 L4_MABX_B.SFunction1_o24_b = L4_MABX_P.RXtime_Y0_lg;
31934
31935 /* SystemInitialize for Outport: '<S501>/RX delta time' */
31936 L4_MABX_B.SFunction1_o25_i = L4_MABX_P.RXdeltatime_Y0_h1;
31937
31938 /* End of SystemInitialize for SubSystem: '<S500>/EBC1_0B' */
31939
31940 /* SystemInitialize for Enabled SubSystem: '<S553>/EEC2_001' */
31941 /* SystemInitialize for Outport: '<S554>/SPN558_AccelPed1LowIdlSwitch' */
31942 L4_MABX_B.SFunction1_o1_f = L4_MABX_P.SPN558_AccelPed1LowIdlSwitch_Y0;
31943
31944 /* SystemInitialize for Outport: '<S554>/SPN559_AccelPedKickdownSw' */
31945 L4_MABX_B.SFunction1_o2_e4 = L4_MABX_P.SPN559_AccelPedKickdownSw_Y0;
31946
31947 /* SystemInitialize for Outport: '<S554>/SPN1437_RoadSpeedLimitStatus' */
31948 L4_MABX_B.SFunction1_o3_o0 = L4_MABX_P.SPN1437_RoadSpeedLimitStatus_Y0;
31949
31950 /* SystemInitialize for Outport: '<S554>/SPN2970_AccelPed2LowIdlSwitch' */
31951 L4_MABX_B.SFunction1_o4_mx = L4_MABX_P.SPN2970_AccelPed2LowIdlSwitch_Y;
31952
31953 /* SystemInitialize for Outport: '<S554>/SPN91_AccelPedPos1' */
31954 L4_MABX_B.SFunction1_o5_lt = L4_MABX_P.SPN91_AccelPedPos1_Y0;
31955
31956 /* SystemInitialize for Outport: '<S554>/SPN92_EngPercLoadAtCurrSpd' */
31957 L4_MABX_B.SFunction1_o6_py = L4_MABX_P.SPN92_EngPercLoadAtCurrSpd_Y0;
31958
31959 /* SystemInitialize for Outport: '<S554>/SPN974_RemAccelPedalPosition' */
31960 L4_MABX_B.SFunction1_o7_iz = L4_MABX_P.SPN974_RemAccelPedalPosition_Y0;
31961
31962 /* SystemInitialize for Outport: '<S554>/SPN29_AccelPedPos2' */
31963 L4_MABX_B.SFunction1_o8_c = L4_MABX_P.SPN29_AccelPedPos2_Y0;
31964
31965 /* SystemInitialize for Outport: '<S554>/SPN2979_VehAccelRateLimStatus' */
31966 L4_MABX_B.SFunction1_o9_o = L4_MABX_P.SPN2979_VehAccelRateLimStatus_Y;
31967
31968 /* SystemInitialize for Outport: '<S554>/SPN5021_MomEngMaxPwrEnFdbk' */
31969 L4_MABX_B.SFunction1_o10_iv = L4_MABX_P.SPN5021_MomEngMaxPwrEnFdbk_Y0;
31970
31971 /* SystemInitialize for Outport: '<S554>/SPN5399_DPFThermMgmtActive' */
31972 L4_MABX_B.SFunction1_o11_k = L4_MABX_P.SPN5399_DPFThermMgmtActive_Y0;
31973
31974 /* SystemInitialize for Outport: '<S554>/SPN5400_SCRThermMgmtActive' */
31975 L4_MABX_B.SFunction1_o12_a = L4_MABX_P.SPN5400_SCRThermMgmtActive_Y0;
31976
31977 /* SystemInitialize for Outport: '<S554>/SPN3357_ActMaxAvailEngPercTrq' */
31978 L4_MABX_B.SFunction1_o13_h = L4_MABX_P.SPN3357_ActMaxAvailEngPercTrq_Y;
31979
31980 /* SystemInitialize for Outport: '<S554>/SPN5398_EstPumpingPercentTorque' */
31981 L4_MABX_B.SFunction1_o14_o = L4_MABX_P.SPN5398_EstPumpingPercentTorque;
31982
31983 /* SystemInitialize for Outport: '<S554>/RX status' */
31984 L4_MABX_B.SFunction1_o15_e = L4_MABX_P.RXstatus_Y0_dw;
31985
31986 /* SystemInitialize for Outport: '<S554>/RX time' */
31987 L4_MABX_B.SFunction1_o16_b = L4_MABX_P.RXtime_Y0_d;
31988
31989 /* SystemInitialize for Outport: '<S554>/RX delta time' */
31990 L4_MABX_B.SFunction1_o17_i = L4_MABX_P.RXdeltatime_Y0_c;
31991
31992 /* End of SystemInitialize for SubSystem: '<S553>/EEC2_001' */
31993
31994 /* SystemInitialize for Enabled SubSystem: '<S594>/CAN_TYPE1_RX_M1_C1' */
31995 /* SystemInitialize for Outport: '<S598>/EPBPCMInhibitStatusFeedback' */
31996 L4_MABX_B.SFunction1_o1_oa = L4_MABX_P.EPBPCMInhibitStatusFeedback_Y0;
31997
31998 /* SystemInitialize for Outport: '<S598>/EPBPCMManualStatusFeedback' */
31999 L4_MABX_B.SFunction1_o2_n0 = L4_MABX_P.EPBPCMManualStatusFeedback_Y0;
32000
32001 /* SystemInitialize for Outport: '<S598>/RX status' */
32002 L4_MABX_B.SFunction1_o3_c = L4_MABX_P.RXstatus_Y0_c2;
32003
32004 /* SystemInitialize for Outport: '<S598>/RX time' */
32005 L4_MABX_B.SFunction1_o4_nu = L4_MABX_P.RXtime_Y0_k0;
32006
32007 /* SystemInitialize for Outport: '<S598>/RX delta time' */
32008 L4_MABX_B.SFunction1_o5_i1 = L4_MABX_P.RXdeltatime_Y0_ia;
32009
32010 /* End of SystemInitialize for SubSystem: '<S594>/CAN_TYPE1_RX_M1_C1' */
32011
32012 /* SystemInitialize for Enabled SubSystem: '<S595>/CAN_TYPE1_RX_M1_C2' */
32013 /* SystemInitialize for Outport: '<S599>/EPBPCMInhibitStatusFeedback' */
32014 L4_MABX_B.SFunction1_o1_l4 = L4_MABX_P.EPBPCMInhibitStatusFeedback_Y_a;
32015
32016 /* SystemInitialize for Outport: '<S599>/EPBPCMManualStatusFeedback' */
32017 L4_MABX_B.SFunction1_o2_g2 = L4_MABX_P.EPBPCMManualStatusFeedback_Y0_f;
32018
32019 /* SystemInitialize for Outport: '<S599>/RX status' */
32020 L4_MABX_B.SFunction1_o3_n0 = L4_MABX_P.RXstatus_Y0_ji;
32021
32022 /* SystemInitialize for Outport: '<S599>/RX time' */
32023 L4_MABX_B.SFunction1_o4_nc = L4_MABX_P.RXtime_Y0_it;
32024
32025 /* SystemInitialize for Outport: '<S599>/RX delta time' */
32026 L4_MABX_B.SFunction1_o5_c = L4_MABX_P.RXdeltatime_Y0_ps;
32027
32028 /* End of SystemInitialize for SubSystem: '<S595>/CAN_TYPE1_RX_M1_C2' */
32029
32030 /* SystemInitialize for Enabled SubSystem: '<S596>/CAN_TYPE1_RX_M2_C1' */
32031 /* SystemInitialize for Outport: '<S600>/EPBPCMInhibitStatusFeedback' */
32032 L4_MABX_B.SFunction1_o1_oe = L4_MABX_P.EPBPCMInhibitStatusFeedback_Y_j;
32033
32034 /* SystemInitialize for Outport: '<S600>/EPBPCMManualStatusFeedback' */
32035 L4_MABX_B.SFunction1_o2_ix = L4_MABX_P.EPBPCMManualStatusFeedback_Y0_n;
32036
32037 /* SystemInitialize for Outport: '<S600>/RX status' */
32038 L4_MABX_B.SFunction1_o3_nr = L4_MABX_P.RXstatus_Y0_ft;
32039
32040 /* SystemInitialize for Outport: '<S600>/RX time' */
32041 L4_MABX_B.SFunction1_o4_ev = L4_MABX_P.RXtime_Y0_a;
32042
32043 /* SystemInitialize for Outport: '<S600>/RX delta time' */
32044 L4_MABX_B.SFunction1_o5_f4 = L4_MABX_P.RXdeltatime_Y0_cf;
32045
32046 /* End of SystemInitialize for SubSystem: '<S596>/CAN_TYPE1_RX_M2_C1' */
32047
32048 /* SystemInitialize for Enabled SubSystem: '<S607>/PX2_LaneEdgeLeft' */
32049 /* SystemInitialize for Outport: '<S608>/PX2_LaneEdgeLeftAngle' */
32050 L4_MABX_B.SFunction1_o1_nm = L4_MABX_P.PX2_LaneEdgeLeftAngle_Y0;
32051
32052 /* SystemInitialize for Outport: '<S608>/PX2_LaneEdgeLeftNumPoints' */
32053 L4_MABX_B.SFunction1_o2_ki = L4_MABX_P.PX2_LaneEdgeLeftNumPoints_Y0;
32054
32055 /* SystemInitialize for Outport: '<S608>/PX2_LaneEdgeLeftPosition' */
32056 L4_MABX_B.SFunction1_o3_pf = L4_MABX_P.PX2_LaneEdgeLeftPosition_Y0;
32057
32058 /* SystemInitialize for Outport: '<S608>/RX status' */
32059 L4_MABX_B.SFunction1_o4_kb = L4_MABX_P.RXstatus_Y0_n4;
32060
32061 /* SystemInitialize for Outport: '<S608>/RX time' */
32062 L4_MABX_B.SFunction1_o5_he = L4_MABX_P.RXtime_Y0_ge;
32063
32064 /* SystemInitialize for Outport: '<S608>/RX delta time' */
32065 L4_MABX_B.SFunction1_o6_p = L4_MABX_P.RXdeltatime_Y0_gk;
32066
32067 /* End of SystemInitialize for SubSystem: '<S607>/PX2_LaneEdgeLeft' */
32068
32069 /* SystemInitialize for Enabled SubSystem: '<S607>/PX2_LaneEdgeRight' */
32070 /* SystemInitialize for Outport: '<S609>/PX2_LaneEdgeRightAngle' */
32071 L4_MABX_B.SFunction1_o1_j2 = L4_MABX_P.PX2_LaneEdgeRightAngle_Y0;
32072
32073 /* SystemInitialize for Outport: '<S609>/PX2_LaneEdgeRightNumPoints' */
32074 L4_MABX_B.SFunction1_o2_lg = L4_MABX_P.PX2_LaneEdgeRightNumPoints_Y0;
32075
32076 /* SystemInitialize for Outport: '<S609>/PX2_LaneEdgeRightPosition' */
32077 L4_MABX_B.SFunction1_o3_bb = L4_MABX_P.PX2_LaneEdgeRightPosition_Y0;
32078
32079 /* SystemInitialize for Outport: '<S609>/RX status' */
32080 L4_MABX_B.SFunction1_o4_ju = L4_MABX_P.RXstatus_Y0_hx;
32081
32082 /* SystemInitialize for Outport: '<S609>/RX time' */
32083 L4_MABX_B.SFunction1_o5_os = L4_MABX_P.RXtime_Y0_j1;
32084
32085 /* SystemInitialize for Outport: '<S609>/RX delta time' */
32086 L4_MABX_B.SFunction1_o6_d = L4_MABX_P.RXdeltatime_Y0_gz;
32087
32088 /* End of SystemInitialize for SubSystem: '<S607>/PX2_LaneEdgeRight' */
32089
32090 /* SystemInitialize for Enabled SubSystem: '<S618>/PX2_MapLaneEgoLeft' */
32091 /* SystemInitialize for Outport: '<S619>/PX2_MapLaneNearPos' */
32092 L4_MABX_B.SFunction1_o1_ld = L4_MABX_P.PX2_MapLaneNearPos_Y0;
32093
32094 /* SystemInitialize for Outport: '<S619>/PX2_MapLaneMidPos' */
32095 L4_MABX_B.SFunction1_o2_do = L4_MABX_P.PX2_MapLaneMidPos_Y0;
32096
32097 /* SystemInitialize for Outport: '<S619>/PX2_MapLaneFarPos' */
32098 L4_MABX_B.SFunction1_o3_p3 = L4_MABX_P.PX2_MapLaneFarPos_Y0;
32099
32100 /* SystemInitialize for Outport: '<S619>/PX2_EgoLaneNearPosValid' */
32101 L4_MABX_B.SFunction1_o4_ot = L4_MABX_P.PX2_EgoLaneNearPosValid_Y0;
32102
32103 /* SystemInitialize for Outport: '<S619>/PX2_EgoLaneMidPosValid' */
32104 L4_MABX_B.SFunction1_o5_f = L4_MABX_P.PX2_EgoLaneMidPosValid_Y0;
32105
32106 /* SystemInitialize for Outport: '<S619>/PX2_EgoLaneFarPosValid' */
32107 L4_MABX_B.SFunction1_o6_e = L4_MABX_P.PX2_EgoLaneFarPosValid_Y0;
32108
32109 /* SystemInitialize for Outport: '<S619>/RX status' */
32110 L4_MABX_B.SFunction1_o7_o = L4_MABX_P.RXstatus_Y0_cs;
32111
32112 /* SystemInitialize for Outport: '<S619>/RX time' */
32113 L4_MABX_B.SFunction1_o8_i = L4_MABX_P.RXtime_Y0_jt;
32114
32115 /* SystemInitialize for Outport: '<S619>/RX delta time' */
32116 L4_MABX_B.SFunction1_o9_m = L4_MABX_P.RXdeltatime_Y0_ch;
32117
32118 /* End of SystemInitialize for SubSystem: '<S618>/PX2_MapLaneEgoLeft' */
32119
32120 /* SystemInitialize for Enabled SubSystem: '<S620>/PX2_MapLaneEgoRight' */
32121 /* SystemInitialize for Outport: '<S621>/PX2_MapLaneNearPos' */
32122 L4_MABX_B.SFunction1_o1_li = L4_MABX_P.PX2_MapLaneNearPos_Y0_c;
32123
32124 /* SystemInitialize for Outport: '<S621>/PX2_MapLaneMidPos' */
32125 L4_MABX_B.SFunction1_o2_an = L4_MABX_P.PX2_MapLaneMidPos_Y0_c;
32126
32127 /* SystemInitialize for Outport: '<S621>/PX2_MapLaneFarPos' */
32128 L4_MABX_B.SFunction1_o3_a0 = L4_MABX_P.PX2_MapLaneFarPos_Y0_b;
32129
32130 /* SystemInitialize for Outport: '<S621>/PX2_EgoLaneNearPosValid' */
32131 L4_MABX_B.SFunction1_o4_b1 = L4_MABX_P.PX2_EgoLaneNearPosValid_Y0_n;
32132
32133 /* SystemInitialize for Outport: '<S621>/PX2_EgoLaneMidPosValid' */
32134 L4_MABX_B.SFunction1_o5_p = L4_MABX_P.PX2_EgoLaneMidPosValid_Y0_g;
32135
32136 /* SystemInitialize for Outport: '<S621>/PX2_EgoLaneFarPosValid' */
32137 L4_MABX_B.SFunction1_o6_f = L4_MABX_P.PX2_EgoLaneFarPosValid_Y0_n;
32138
32139 /* SystemInitialize for Outport: '<S621>/RX status' */
32140 L4_MABX_B.SFunction1_o7_l = L4_MABX_P.RXstatus_Y0_on;
32141
32142 /* SystemInitialize for Outport: '<S621>/RX time' */
32143 L4_MABX_B.SFunction1_o8_g = L4_MABX_P.RXtime_Y0_lr;
32144
32145 /* SystemInitialize for Outport: '<S621>/RX delta time' */
32146 L4_MABX_B.SFunction1_o9_g = L4_MABX_P.RXdeltatime_Y0_kr;
32147
32148 /* End of SystemInitialize for SubSystem: '<S620>/PX2_MapLaneEgoRight' */
32149
32150 /* SystemInitialize for Enabled SubSystem: '<S622>/PX2_EgoLanePos' */
32151 /* SystemInitialize for Outport: '<S623>/PX2_EgoLaneNearPosErr' */
32152 L4_MABX_B.SFunction1_o1_kj = L4_MABX_P.PX2_EgoLaneNearPosErr_Y0;
32153
32154 /* SystemInitialize for Outport: '<S623>/PX2_EgoLaneMidPosErr' */
32155 L4_MABX_B.SFunction1_o2_gg = L4_MABX_P.PX2_EgoLaneMidPosErr_Y0;
32156
32157 /* SystemInitialize for Outport: '<S623>/PX2_EgoLaneFarPosErr' */
32158 L4_MABX_B.SFunction1_o3_dh = L4_MABX_P.PX2_EgoLaneFarPosErr_Y0;
32159
32160 /* SystemInitialize for Outport: '<S623>/PX2_EgoLaneNearPosValid' */
32161 L4_MABX_B.SFunction1_o4_lw = L4_MABX_P.PX2_EgoLaneNearPosValid_Y0_b;
32162
32163 /* SystemInitialize for Outport: '<S623>/PX2_EgoLaneMidPosValid' */
32164 L4_MABX_B.SFunction1_o5_i = L4_MABX_P.PX2_EgoLaneMidPosValid_Y0_e;
32165
32166 /* SystemInitialize for Outport: '<S623>/PX2_EgoLaneFarPosValid' */
32167 L4_MABX_B.SFunction1_o6_g = L4_MABX_P.PX2_EgoLaneFarPosValid_Y0_i;
32168
32169 /* SystemInitialize for Outport: '<S623>/RX status' */
32170 L4_MABX_B.SFunction1_o7_k = L4_MABX_P.RXstatus_Y0_gr;
32171
32172 /* SystemInitialize for Outport: '<S623>/RX time' */
32173 L4_MABX_B.SFunction1_o8_k = L4_MABX_P.RXtime_Y0_bi;
32174
32175 /* SystemInitialize for Outport: '<S623>/RX delta time' */
32176 L4_MABX_B.SFunction1_o9_l = L4_MABX_P.RXdeltatime_Y0_ng5;
32177
32178 /* End of SystemInitialize for SubSystem: '<S622>/PX2_EgoLanePos' */
32179
32180 /* SystemInitialize for Enabled SubSystem: '<S632>/VEP1' */
32181 /* SystemInitialize for Outport: '<S633>/NetBatteryCurrent' */
32182 L4_MABX_B.SFunction1_o1_ngf = L4_MABX_P.NetBatteryCurrent_Y0;
32183
32184 /* SystemInitialize for Outport: '<S633>/AltCurrent' */
32185 L4_MABX_B.SFunction1_o2_ko = L4_MABX_P.AltCurrent_Y0;
32186
32187 /* SystemInitialize for Outport: '<S633>/ChargingSystemPotential' */
32188 L4_MABX_B.SFunction1_o3_ke = L4_MABX_P.ChargingSystemPotential_Y0;
32189
32190 /* SystemInitialize for Outport: '<S633>/BatteryPotential_PowerInput1' */
32191 L4_MABX_B.SFunction1_o4_eg = L4_MABX_P.BatteryPotential_PowerInput1_Y0;
32192
32193 /* SystemInitialize for Outport: '<S633>/KeyswitchBatteryPotential' */
32194 L4_MABX_B.SFunction1_o5 = L4_MABX_P.KeyswitchBatteryPotential_Y0;
32195
32196 /* SystemInitialize for Outport: '<S633>/RX status' */
32197 L4_MABX_B.SFunction1_o6 = L4_MABX_P.RXstatus_Y0_pw;
32198
32199 /* SystemInitialize for Outport: '<S633>/RX time' */
32200 L4_MABX_B.SFunction1_o7 = L4_MABX_P.RXtime_Y0_as;
32201
32202 /* SystemInitialize for Outport: '<S633>/RX delta time' */
32203 L4_MABX_B.SFunction1_o8 = L4_MABX_P.RXdeltatime_Y0_hc;
32204
32205 /* End of SystemInitialize for SubSystem: '<S632>/VEP1' */
32206
32207 /* SystemInitialize for Enabled SubSystem: '<S455>/Decode_TPCM_CTS' */
32208 /* SystemInitialize for Outport: '<S674>/Out' */
32209 L4_MABX_B.SPN2556_ControlByte_bm = (uint8_T)L4_MABX_P.Out_Y0_nh;
32210 L4_MABX_B.SPN2561_NumberOfPacketsThatCanB = (uint8_T)L4_MABX_P.Out_Y0_nh;
32211 L4_MABX_B.SPN2562_NextPacketNumberToBeSen = (uint8_T)L4_MABX_P.Out_Y0_nh;
32212 L4_MABX_B.DataType_mo = (uint32_T)L4_MABX_P.Out_Y0_nh;
32213
32214 /* End of SystemInitialize for SubSystem: '<S455>/Decode_TPCM_CTS' */
32215
32216 /* SystemInitialize for Enabled SubSystem: '<S455>/Decode_TPCM_ConnectionAbort' */
32217 /* SystemInitialize for Outport: '<S675>/Out' */
32218 L4_MABX_B.SPN2556_ControlByte_b = (uint8_T)L4_MABX_P.Out_Y0_n0;
32219 L4_MABX_B.SPN2570_ConnectionAbortReason = (uint8_T)L4_MABX_P.Out_Y0_n0;
32220 L4_MABX_B.DataType_dm = (uint32_T)L4_MABX_P.Out_Y0_n0;
32221
32222 /* End of SystemInitialize for SubSystem: '<S455>/Decode_TPCM_ConnectionAbort' */
32223
32224 /* SystemInitialize for Enabled SubSystem: '<S455>/Decode_TPCM_EndOfMessageAck' */
32225 /* SystemInitialize for Outport: '<S676>/Out' */
32226 L4_MABX_B.SPN2556_ControlByte_i = (uint8_T)L4_MABX_P.Out_Y0_g;
32227 L4_MABX_B.DataType_iq = (uint16_T)L4_MABX_P.Out_Y0_g;
32228 L4_MABX_B.SPN2565_TotalNumberOfPackets = (uint8_T)L4_MABX_P.Out_Y0_g;
32229 L4_MABX_B.DataType_m = (uint32_T)L4_MABX_P.Out_Y0_g;
32230
32231 /* End of SystemInitialize for SubSystem: '<S455>/Decode_TPCM_EndOfMessageAck' */
32232
32233 /* SystemInitialize for Enabled SubSystem: '<S455>/Decode_TPCM_RTS' */
32234 /* SystemInitialize for Outport: '<S677>/Out' */
32235 L4_MABX_B.SPN2556_ControlByte = (uint8_T)L4_MABX_P.Out_Y0_h;
32236 L4_MABX_B.DataType_nx = (uint16_T)L4_MABX_P.Out_Y0_h;
32237 L4_MABX_B.SPN2558_TotalNumberOfPackets = (uint8_T)L4_MABX_P.Out_Y0_h;
32238 L4_MABX_B.SPN2559_MaximumNumberOfPackets = (uint8_T)L4_MABX_P.Out_Y0_h;
32239 L4_MABX_B.DataType_bg = (uint32_T)L4_MABX_P.Out_Y0_h;
32240
32241 /* End of SystemInitialize for SubSystem: '<S455>/Decode_TPCM_RTS' */
32242
32243 /* SystemInitialize for Enabled SubSystem: '<S568>/CAN_TYPE1_RX_M1_C1' */
32244 /* SystemInitialize for Outport: '<S572>/byte1' */
32245 L4_MABX_B.SFunction1_o1_j5 = L4_MABX_P.byte1_Y0_p;
32246
32247 /* SystemInitialize for Outport: '<S572>/byte2' */
32248 L4_MABX_B.SFunction1_o2_mn = L4_MABX_P.byte2_Y0_h;
32249
32250 /* SystemInitialize for Outport: '<S572>/byte3' */
32251 L4_MABX_B.SFunction1_o3_of = L4_MABX_P.byte3_Y0_k;
32252
32253 /* SystemInitialize for Outport: '<S572>/byte4' */
32254 L4_MABX_B.SFunction1_o4_f = L4_MABX_P.byte4_Y0_p;
32255
32256 /* SystemInitialize for Outport: '<S572>/byte5' */
32257 L4_MABX_B.SFunction1_o5_f3 = L4_MABX_P.byte5_Y0_n;
32258
32259 /* SystemInitialize for Outport: '<S572>/byte6' */
32260 L4_MABX_B.SFunction1_o6_eaf = L4_MABX_P.byte6_Y0_p;
32261
32262 /* SystemInitialize for Outport: '<S572>/byte7' */
32263 L4_MABX_B.SFunction1_o7_n = L4_MABX_P.byte7_Y0_b;
32264
32265 /* SystemInitialize for Outport: '<S572>/byte8' */
32266 L4_MABX_B.SFunction1_o8_a = L4_MABX_P.byte8_Y0_f;
32267
32268 /* SystemInitialize for Outport: '<S572>/RX status' */
32269 L4_MABX_B.SFunction1_o9_cl = L4_MABX_P.RXstatus_Y0_no;
32270
32271 /* SystemInitialize for Outport: '<S572>/RX time' */
32272 L4_MABX_B.SFunction1_o10_eg = L4_MABX_P.RXtime_Y0_hc;
32273
32274 /* SystemInitialize for Outport: '<S572>/RX delta time' */
32275 L4_MABX_B.SFunction1_o11_g = L4_MABX_P.RXdeltatime_Y0_po;
32276
32277 /* End of SystemInitialize for SubSystem: '<S568>/CAN_TYPE1_RX_M1_C1' */
32278
32279 /* SystemInitialize for Enabled SubSystem: '<S569>/CAN_TYPE1_RX_M1_C2' */
32280 /* SystemInitialize for Outport: '<S573>/byte1' */
32281 L4_MABX_B.SFunction1_o1_pq = L4_MABX_P.byte1_Y0_g;
32282
32283 /* SystemInitialize for Outport: '<S573>/byte2' */
32284 L4_MABX_B.SFunction1_o2_hd = L4_MABX_P.byte2_Y0_l;
32285
32286 /* SystemInitialize for Outport: '<S573>/byte3' */
32287 L4_MABX_B.SFunction1_o3_ir = L4_MABX_P.byte3_Y0_h;
32288
32289 /* SystemInitialize for Outport: '<S573>/byte4' */
32290 L4_MABX_B.SFunction1_o4_a2 = L4_MABX_P.byte4_Y0_j;
32291
32292 /* SystemInitialize for Outport: '<S573>/byte5' */
32293 L4_MABX_B.SFunction1_o5_n = L4_MABX_P.byte5_Y0_i;
32294
32295 /* SystemInitialize for Outport: '<S573>/byte6' */
32296 L4_MABX_B.SFunction1_o6_a2 = L4_MABX_P.byte6_Y0_gj;
32297
32298 /* SystemInitialize for Outport: '<S573>/byte7' */
32299 L4_MABX_B.SFunction1_o7_e3 = L4_MABX_P.byte7_Y0_l;
32300
32301 /* SystemInitialize for Outport: '<S573>/byte8' */
32302 L4_MABX_B.SFunction1_o8_kz = L4_MABX_P.byte8_Y0_c;
32303
32304 /* SystemInitialize for Outport: '<S573>/RX status' */
32305 L4_MABX_B.SFunction1_o9_h = L4_MABX_P.RXstatus_Y0_o;
32306
32307 /* SystemInitialize for Outport: '<S573>/RX time' */
32308 L4_MABX_B.SFunction1_o10_e = L4_MABX_P.RXtime_Y0_ja;
32309
32310 /* SystemInitialize for Outport: '<S573>/RX delta time' */
32311 L4_MABX_B.SFunction1_o11_e = L4_MABX_P.RXdeltatime_Y0_o;
32312
32313 /* End of SystemInitialize for SubSystem: '<S569>/CAN_TYPE1_RX_M1_C2' */
32314
32315 /* SystemInitialize for Enabled SubSystem: '<S570>/CAN_TYPE1_RX_M3_C2' */
32316 /* SystemInitialize for Outport: '<S574>/byte1' */
32317 L4_MABX_B.SFunction1_o1_bq = L4_MABX_P.byte1_Y0_k;
32318
32319 /* SystemInitialize for Outport: '<S574>/byte2' */
32320 L4_MABX_B.SFunction1_o2_eq = L4_MABX_P.byte2_Y0_c;
32321
32322 /* SystemInitialize for Outport: '<S574>/byte3' */
32323 L4_MABX_B.SFunction1_o3_l = L4_MABX_P.byte3_Y0_e;
32324
32325 /* SystemInitialize for Outport: '<S574>/byte4' */
32326 L4_MABX_B.SFunction1_o4_l4 = L4_MABX_P.byte4_Y0_c;
32327
32328 /* SystemInitialize for Outport: '<S574>/byte5' */
32329 L4_MABX_B.SFunction1_o5_b = L4_MABX_P.byte5_Y0_k;
32330
32331 /* SystemInitialize for Outport: '<S574>/byte6' */
32332 L4_MABX_B.SFunction1_o6_ea = L4_MABX_P.byte6_Y0_f;
32333
32334 /* SystemInitialize for Outport: '<S574>/byte7' */
32335 L4_MABX_B.SFunction1_o7_hz = L4_MABX_P.byte7_Y0_n;
32336
32337 /* SystemInitialize for Outport: '<S574>/byte8' */
32338 L4_MABX_B.SFunction1_o8_j2 = L4_MABX_P.byte8_Y0_d;
32339
32340 /* SystemInitialize for Outport: '<S574>/RX status' */
32341 L4_MABX_B.SFunction1_o9_f = L4_MABX_P.RXstatus_Y0_mx;
32342
32343 /* SystemInitialize for Outport: '<S574>/RX time' */
32344 L4_MABX_B.SFunction1_o10_a = L4_MABX_P.RXtime_Y0_b;
32345
32346 /* SystemInitialize for Outport: '<S574>/RX delta time' */
32347 L4_MABX_B.SFunction1_o11_l = L4_MABX_P.RXdeltatime_Y0_oc;
32348
32349 /* End of SystemInitialize for SubSystem: '<S570>/CAN_TYPE1_RX_M3_C2' */
32350
32351 /* SystemInitialize for Enabled SubSystem: '<S581>/CAN_TYPE1_RX_M1_C1' */
32352 /* SystemInitialize for Outport: '<S585>/byte1' */
32353 L4_MABX_B.SFunction1_o1_ak = L4_MABX_P.byte1_Y0_n;
32354
32355 /* SystemInitialize for Outport: '<S585>/byte2' */
32356 L4_MABX_B.SFunction1_o2_lh = L4_MABX_P.byte2_Y0_i;
32357
32358 /* SystemInitialize for Outport: '<S585>/byte3' */
32359 L4_MABX_B.SFunction1_o3_cj = L4_MABX_P.byte3_Y0_j;
32360
32361 /* SystemInitialize for Outport: '<S585>/byte4' */
32362 L4_MABX_B.SFunction1_o4_js = L4_MABX_P.byte4_Y0_e;
32363
32364 /* SystemInitialize for Outport: '<S585>/byte5' */
32365 L4_MABX_B.SFunction1_o5_ow = L4_MABX_P.byte5_Y0_e;
32366
32367 /* SystemInitialize for Outport: '<S585>/byte6' */
32368 L4_MABX_B.SFunction1_o6_c = L4_MABX_P.byte6_Y0_n;
32369
32370 /* SystemInitialize for Outport: '<S585>/byte7' */
32371 L4_MABX_B.SFunction1_o7_ps = L4_MABX_P.byte7_Y0_g;
32372
32373 /* SystemInitialize for Outport: '<S585>/byte8' */
32374 L4_MABX_B.SFunction1_o8_m = L4_MABX_P.byte8_Y0_h;
32375
32376 /* SystemInitialize for Outport: '<S585>/RX status' */
32377 L4_MABX_B.SFunction1_o9_me = L4_MABX_P.RXstatus_Y0_as;
32378
32379 /* SystemInitialize for Outport: '<S585>/RX time' */
32380 L4_MABX_B.SFunction1_o10_j = L4_MABX_P.RXtime_Y0_bd;
32381
32382 /* SystemInitialize for Outport: '<S585>/RX delta time' */
32383 L4_MABX_B.SFunction1_o11_b = L4_MABX_P.RXdeltatime_Y0_p3;
32384
32385 /* End of SystemInitialize for SubSystem: '<S581>/CAN_TYPE1_RX_M1_C1' */
32386
32387 /* SystemInitialize for Enabled SubSystem: '<S582>/CAN_TYPE1_RX_M1_C2' */
32388 /* SystemInitialize for Outport: '<S586>/byte1' */
32389 L4_MABX_B.SFunction1_o1_ge = L4_MABX_P.byte1_Y0_l;
32390
32391 /* SystemInitialize for Outport: '<S586>/byte2' */
32392 L4_MABX_B.SFunction1_o2_kk = L4_MABX_P.byte2_Y0_lw;
32393
32394 /* SystemInitialize for Outport: '<S586>/byte3' */
32395 L4_MABX_B.SFunction1_o3_mg = L4_MABX_P.byte3_Y0_j5;
32396
32397 /* SystemInitialize for Outport: '<S586>/byte4' */
32398 L4_MABX_B.SFunction1_o4_ea = L4_MABX_P.byte4_Y0_pz;
32399
32400 /* SystemInitialize for Outport: '<S586>/byte5' */
32401 L4_MABX_B.SFunction1_o5_gx = L4_MABX_P.byte5_Y0_id;
32402
32403 /* SystemInitialize for Outport: '<S586>/byte6' */
32404 L4_MABX_B.SFunction1_o6_a = L4_MABX_P.byte6_Y0_k;
32405
32406 /* SystemInitialize for Outport: '<S586>/byte7' */
32407 L4_MABX_B.SFunction1_o7_ht = L4_MABX_P.byte7_Y0_ha;
32408
32409 /* SystemInitialize for Outport: '<S586>/byte8' */
32410 L4_MABX_B.SFunction1_o8_b0 = L4_MABX_P.byte8_Y0_k;
32411
32412 /* SystemInitialize for Outport: '<S586>/RX status' */
32413 L4_MABX_B.SFunction1_o9_mt = L4_MABX_P.RXstatus_Y0_na;
32414
32415 /* SystemInitialize for Outport: '<S586>/RX time' */
32416 L4_MABX_B.SFunction1_o10_c = L4_MABX_P.RXtime_Y0_dq;
32417
32418 /* SystemInitialize for Outport: '<S586>/RX delta time' */
32419 L4_MABX_B.SFunction1_o11_i = L4_MABX_P.RXdeltatime_Y0_lj;
32420
32421 /* End of SystemInitialize for SubSystem: '<S582>/CAN_TYPE1_RX_M1_C2' */
32422
32423 /* SystemInitialize for Enabled SubSystem: '<S583>/CAN_TYPE1_RX_M3_C2' */
32424 /* SystemInitialize for Outport: '<S587>/byte1' */
32425 L4_MABX_B.SFunction1_o1_km = L4_MABX_P.byte1_Y0_i;
32426
32427 /* SystemInitialize for Outport: '<S587>/byte2' */
32428 L4_MABX_B.SFunction1_o2_old = L4_MABX_P.byte2_Y0_o;
32429
32430 /* SystemInitialize for Outport: '<S587>/byte3' */
32431 L4_MABX_B.SFunction1_o3_il = L4_MABX_P.byte3_Y0_b;
32432
32433 /* SystemInitialize for Outport: '<S587>/byte4' */
32434 L4_MABX_B.SFunction1_o4_aj = L4_MABX_P.byte4_Y0_h;
32435
32436 /* SystemInitialize for Outport: '<S587>/byte5' */
32437 L4_MABX_B.SFunction1_o5_d = L4_MABX_P.byte5_Y0_f3;
32438
32439 /* SystemInitialize for Outport: '<S587>/byte6' */
32440 L4_MABX_B.SFunction1_o6_el = L4_MABX_P.byte6_Y0_fl;
32441
32442 /* SystemInitialize for Outport: '<S587>/byte7' */
32443 L4_MABX_B.SFunction1_o7_f = L4_MABX_P.byte7_Y0_o;
32444
32445 /* SystemInitialize for Outport: '<S587>/byte8' */
32446 L4_MABX_B.SFunction1_o8_b = L4_MABX_P.byte8_Y0_e;
32447
32448 /* SystemInitialize for Outport: '<S587>/RX status' */
32449 L4_MABX_B.SFunction1_o9_a = L4_MABX_P.RXstatus_Y0_ii;
32450
32451 /* SystemInitialize for Outport: '<S587>/RX time' */
32452 L4_MABX_B.SFunction1_o10_n = L4_MABX_P.RXtime_Y0_b3;
32453
32454 /* SystemInitialize for Outport: '<S587>/RX delta time' */
32455 L4_MABX_B.SFunction1_o11_n = L4_MABX_P.RXdeltatime_Y0_e0;
32456
32457 /* End of SystemInitialize for SubSystem: '<S583>/CAN_TYPE1_RX_M3_C2' */
32458
32459 /* SystemInitialize for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_1' */
32460 /* InitializeConditions for UnitDelay: '<S30>/Unit_Delay' */
32461 L4_MABX_DW.Unit_Delay_DSTATE_f1 = L4_MABX_P.Unit_Delay_InitialCondition_e3;
32462
32463 /* InitializeConditions for UnitDelay: '<S31>/Unit Delay' */
32464 L4_MABX_DW.UnitDelay_DSTATE_j = L4_MABX_P.UnitDelay_InitialCondition_n;
32465
32466 /* End of SystemInitialize for SubSystem: '<S1>/BUS_OFF_RECOVERY_1' */
32467
32468 /* SystemInitialize for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_5' */
32469 /* InitializeConditions for UnitDelay: '<S54>/Unit_Delay' */
32470 L4_MABX_DW.Unit_Delay_DSTATE_i5 = L4_MABX_P.Unit_Delay_InitialCondition_ot;
32471
32472 /* InitializeConditions for UnitDelay: '<S55>/Unit Delay' */
32473 L4_MABX_DW.UnitDelay_DSTATE_p = L4_MABX_P.UnitDelay_InitialCondition_p;
32474
32475 /* End of SystemInitialize for SubSystem: '<S1>/BUS_OFF_RECOVERY_5' */
32476
32477 /* SystemInitialize for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_6' */
32478 /* InitializeConditions for UnitDelay: '<S60>/Unit_Delay' */
32479 L4_MABX_DW.Unit_Delay_DSTATE_l5 = L4_MABX_P.Unit_Delay_InitialCondition_le;
32480
32481 /* InitializeConditions for UnitDelay: '<S61>/Unit Delay' */
32482 L4_MABX_DW.UnitDelay_DSTATE_dr = L4_MABX_P.UnitDelay_InitialCondition_i;
32483
32484 /* End of SystemInitialize for SubSystem: '<S1>/BUS_OFF_RECOVERY_6' */
32485
32486 /* SystemInitialize for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_3' */
32487 /* InitializeConditions for UnitDelay: '<S42>/Unit_Delay' */
32488 L4_MABX_DW.Unit_Delay_DSTATE_h41 = L4_MABX_P.Unit_Delay_InitialCondition_mw;
32489
32490 /* InitializeConditions for UnitDelay: '<S43>/Unit Delay' */
32491 L4_MABX_DW.UnitDelay_DSTATE_dr4 = L4_MABX_P.UnitDelay_InitialCondition_hk;
32492
32493 /* End of SystemInitialize for SubSystem: '<S1>/BUS_OFF_RECOVERY_3' */
32494
32495 /* SystemInitialize for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_4' */
32496 /* InitializeConditions for UnitDelay: '<S48>/Unit_Delay' */
32497 L4_MABX_DW.Unit_Delay_DSTATE_mq = L4_MABX_P.Unit_Delay_InitialCondition_bo;
32498
32499 /* InitializeConditions for UnitDelay: '<S49>/Unit Delay' */
32500 L4_MABX_DW.UnitDelay_DSTATE_h = L4_MABX_P.UnitDelay_InitialCondition_l;
32501
32502 /* End of SystemInitialize for SubSystem: '<S1>/BUS_OFF_RECOVERY_4' */
32503
32504 /* SystemInitialize for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_2' */
32505 /* InitializeConditions for UnitDelay: '<S36>/Unit_Delay' */
32506 L4_MABX_DW.Unit_Delay_DSTATE_je = L4_MABX_P.Unit_Delay_InitialCondition_in;
32507
32508 /* InitializeConditions for UnitDelay: '<S37>/Unit Delay' */
32509 L4_MABX_DW.UnitDelay_DSTATE_b = L4_MABX_P.UnitDelay_InitialCondition_m;
32510
32511 /* End of SystemInitialize for SubSystem: '<S1>/BUS_OFF_RECOVERY_2' */
32512 }
32513}
32514
32515/* Model terminate function */
32516void L4_MABX_terminate(void)
32517{
32518 /* Terminate for Atomic SubSystem: '<S815>/CAN_TX_1000ms' */
32519
32520 /* Terminate for Enabled SubSystem: '<S835>/AIR1' */
32521
32522 /* Terminate for S-Function (rti_commonblock): '<S836>/S-Function1' */
32523
32524 /* dSPACE RTICAN TX Message Block: "AIR1" Id:419343921 */
32525 {
32526 /* ... Set the message into sleep mode */
32527 while ((rtican_type1_tq_error[1][3] = can_tp1_msg_sleep
32528 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31])) ==
32529 DSMCOM_BUFFER_OVERFLOW) ;
32530 }
32531
32532 /* End of Terminate for SubSystem: '<S835>/AIR1' */
32533
32534 /* Terminate for Enabled SubSystem: '<S843>/AMB' */
32535
32536 /* Terminate for S-Function (rti_commonblock): '<S844>/S-Function1' */
32537
32538 /* dSPACE RTICAN TX Message Block: "AMB" Id:419362048 */
32539 {
32540 /* ... Set the message into sleep mode */
32541 while ((rtican_type1_tq_error[1][4] = can_tp1_msg_sleep
32542 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500])) ==
32543 DSMCOM_BUFFER_OVERFLOW) ;
32544 }
32545
32546 /* End of Terminate for SubSystem: '<S843>/AMB' */
32547
32548 /* End of Terminate for SubSystem: '<S815>/CAN_TX_1000ms' */
32549
32550 /* Terminate for S-Function (dsa_tcpip_setup_sfcn): '<S386>/dsa_tcpip_setup' */
32551 /* Level2 S-Function Block: '<S386>/dsa_tcpip_setup' (dsa_tcpip_setup_sfcn) */
32552 {
32553 SimStruct *rts = L4_MABX_M->childSfunctions[3];
32554 sfcnTerminate(rts);
32555 }
32556
32557 /* Terminate for S-Function (dsa_tcpip_udp_sfcn): '<S387>/TCPIP_Com' */
32558 /* Level2 S-Function Block: '<S387>/TCPIP_Com' (dsa_tcpip_udp_sfcn) */
32559 {
32560 SimStruct *rts = L4_MABX_M->childSfunctions[4];
32561 sfcnTerminate(rts);
32562 }
32563
32564 /* Terminate for Atomic SubSystem: '<S815>/CAN_TX_100ms' */
32565
32566 /* Terminate for Enabled SubSystem: '<S874>/PropB_XPR_FC' */
32567
32568 /* Terminate for S-Function (rti_commonblock): '<S876>/S-Function1' */
32569
32570 /* dSPACE RTICAN TX Message Block: "PropB_XPR_FC" Id:419366140 */
32571 {
32572 /* ... Set the message into sleep mode */
32573 while ((rtican_type1_tq_error[0][4] = can_tp1_msg_sleep
32574 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC])) ==
32575 DSMCOM_BUFFER_OVERFLOW) ;
32576 }
32577
32578 /* End of Terminate for SubSystem: '<S874>/PropB_XPR_FC' */
32579
32580 /* Terminate for Enabled SubSystem: '<S875>/PropB_XPR_FC' */
32581
32582 /* Terminate for S-Function (rti_commonblock): '<S877>/S-Function1' */
32583
32584 /* dSPACE RTICAN TX Message Block: "PropB_XPR_FC" Id:419366140 */
32585 {
32586 /* ... Set the message into sleep mode */
32587 while ((rtican_type1_tq_error[1][4] = can_tp1_msg_sleep
32588 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC])) ==
32589 DSMCOM_BUFFER_OVERFLOW) ;
32590 }
32591
32592 /* End of Terminate for SubSystem: '<S875>/PropB_XPR_FC' */
32593
32594 /* Terminate for Enabled SubSystem: '<S904>/Std_PosRapidUpdate_01' */
32595
32596 /* Terminate for S-Function (rti_commonblock): '<S905>/S-Function1' */
32597
32598 /* dSPACE RTICAN TX Message Block: "Std_PosRapidUpdate_01" Id:3 */
32599 {
32600 /* ... Set the message into sleep mode */
32601 while ((rtican_type1_tq_error[2][0] = can_tp1_msg_sleep
32602 (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3])) ==
32603 DSMCOM_BUFFER_OVERFLOW) ;
32604 }
32605
32606 /* End of Terminate for SubSystem: '<S904>/Std_PosRapidUpdate_01' */
32607
32608 /* Terminate for Enabled SubSystem: '<S854>/CCVS1_00' */
32609
32610 /* Terminate for S-Function (rti_commonblock): '<S856>/S-Function1' */
32611
32612 /* dSPACE RTICAN TX Message Block: "CCVS1_00" Id:419361024 */
32613 {
32614 /* ... Set the message into sleep mode */
32615 while ((rtican_type1_tq_error[0][3] = can_tp1_msg_sleep
32616 (can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100])) ==
32617 DSMCOM_BUFFER_OVERFLOW) ;
32618 }
32619
32620 /* End of Terminate for SubSystem: '<S854>/CCVS1_00' */
32621
32622 /* Terminate for Enabled SubSystem: '<S855>/CCVS1_00' */
32623
32624 /* Terminate for S-Function (rti_commonblock): '<S857>/S-Function1' */
32625
32626 /* dSPACE RTICAN TX Message Block: "CCVS1_00" Id:218034432 */
32627 {
32628 /* ... Set the message into sleep mode */
32629 while ((rtican_type1_tq_error[2][3] = can_tp1_msg_sleep
32630 (can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100])) ==
32631 DSMCOM_BUFFER_OVERFLOW) ;
32632 }
32633
32634 /* End of Terminate for SubSystem: '<S855>/CCVS1_00' */
32635
32636 /* Terminate for Enabled SubSystem: '<S858>/PropB_REAX_5_E4' */
32637
32638 /* Terminate for S-Function (rti_commonblock): '<S860>/S-Function1' incorporates:
32639 * Constant: '<S858>/Constant'
32640 * Constant: '<S858>/Constant1'
32641 */
32642
32643 /* dSPACE RTICAN TX Message Block: "PropB_REAX_5_E4" Id:419429092 */
32644 {
32645 /* ... Set the message into sleep mode */
32646 while ((rtican_type1_tq_error[0][5] = can_tp1_msg_sleep
32647 (can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FFFAE4])) ==
32648 DSMCOM_BUFFER_OVERFLOW) ;
32649 }
32650
32651 /* End of Terminate for SubSystem: '<S858>/PropB_REAX_5_E4' */
32652
32653 /* Terminate for Enabled SubSystem: '<S859>/PropB_REAX_5_E4' */
32654
32655 /* Terminate for S-Function (rti_commonblock): '<S861>/S-Function1' incorporates:
32656 * Constant: '<S859>/Constant'
32657 * Constant: '<S859>/Constant1'
32658 */
32659
32660 /* dSPACE RTICAN TX Message Block: "PropB_REAX_5_E4" Id:419429092 */
32661 {
32662 /* ... Set the message into sleep mode */
32663 while ((rtican_type1_tq_error[2][5] = can_tp1_msg_sleep
32664 (can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0X18FFFAE4])) ==
32665 DSMCOM_BUFFER_OVERFLOW) ;
32666 }
32667
32668 /* End of Terminate for SubSystem: '<S859>/PropB_REAX_5_E4' */
32669
32670 /* Terminate for Enabled SubSystem: '<S878>/Std_COGSOGRapidUpdate_01' */
32671
32672 /* Terminate for S-Function (rti_commonblock): '<S879>/S-Function1' incorporates:
32673 * Constant: '<S878>/Constant'
32674 * Constant: '<S878>/Constant1'
32675 */
32676
32677 /* dSPACE RTICAN TX Message Block: "Std_COGSOGRapidUpdate_01" Id:7 */
32678 {
32679 /* ... Set the message into sleep mode */
32680 while ((rtican_type1_tq_error[2][0] = can_tp1_msg_sleep
32681 (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X7])) ==
32682 DSMCOM_BUFFER_OVERFLOW) ;
32683 }
32684
32685 /* End of Terminate for SubSystem: '<S878>/Std_COGSOGRapidUpdate_01' */
32686
32687 /* Terminate for Enabled SubSystem: '<S880>/EBC1_TX' */
32688
32689 /* Terminate for S-Function (rti_commonblock): '<S881>/S-Function1' */
32690
32691 /* dSPACE RTICAN TX Message Block: "EBC1_TX" Id:418382219 */
32692 {
32693 /* ... Set the message into sleep mode */
32694 while ((rtican_type1_tq_error[0][2] = can_tp1_msg_sleep
32695 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B])) ==
32696 DSMCOM_BUFFER_OVERFLOW) ;
32697 }
32698
32699 /* End of Terminate for SubSystem: '<S880>/EBC1_TX' */
32700
32701 /* End of Terminate for SubSystem: '<S815>/CAN_TX_100ms' */
32702
32703 /* Terminate for Atomic SubSystem: '<S815>/CAN_TX_10ms' */
32704
32705 /* Terminate for Enabled SubSystem: '<S917>/ACCS' */
32706
32707 /* Terminate for S-Function (rti_commonblock): '<S918>/S-Function1' */
32708
32709 /* dSPACE RTICAN TX Message Block: "ACCS" Id:418393572 */
32710 {
32711 /* ... Set the message into sleep mode */
32712 while ((rtican_type1_tq_error[1][3] = can_tp1_msg_sleep
32713 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4])) ==
32714 DSMCOM_BUFFER_OVERFLOW) ;
32715 }
32716
32717 /* End of Terminate for SubSystem: '<S917>/ACCS' */
32718
32719 /* Terminate for Enabled SubSystem: '<S925>/EEC1_00' */
32720
32721 /* Terminate for S-Function (rti_commonblock): '<S927>/S-Function1' */
32722
32723 /* dSPACE RTICAN TX Message Block: "EEC1_00" Id:217056256 */
32724 {
32725 /* ... Set the message into sleep mode */
32726 while ((rtican_type1_tq_error[1][1] = can_tp1_msg_sleep
32727 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400])) ==
32728 DSMCOM_BUFFER_OVERFLOW) ;
32729 }
32730
32731 /* End of Terminate for SubSystem: '<S925>/EEC1_00' */
32732
32733 /* Terminate for Enabled SubSystem: '<S926>/EEC1_00' */
32734
32735 /* Terminate for S-Function (rti_commonblock): '<S928>/S-Function1' */
32736
32737 /* dSPACE RTICAN TX Message Block: "EEC1_00" Id:217056256 */
32738 {
32739 /* ... Set the message into sleep mode */
32740 while ((rtican_type1_tq_error[2][3] = can_tp1_msg_sleep
32741 (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400])) ==
32742 DSMCOM_BUFFER_OVERFLOW) ;
32743 }
32744
32745 /* End of Terminate for SubSystem: '<S926>/EEC1_00' */
32746
32747 /* Terminate for Enabled SubSystem: '<S929>/PropB_REAX_1_E4' */
32748
32749 /* Terminate for S-Function (rti_commonblock): '<S931>/S-Function1' incorporates:
32750 * Constant: '<S929>/Constant'
32751 * Constant: '<S929>/Constant1'
32752 */
32753
32754 /* dSPACE RTICAN TX Message Block: "PropB_REAX_1_E4" Id:419426276 */
32755 {
32756 /* ... Set the message into sleep mode */
32757 while ((rtican_type1_tq_error[0][4] = can_tp1_msg_sleep
32758 (can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FFEFE4])) ==
32759 DSMCOM_BUFFER_OVERFLOW) ;
32760 }
32761
32762 /* End of Terminate for SubSystem: '<S929>/PropB_REAX_1_E4' */
32763
32764 /* Terminate for Enabled SubSystem: '<S930>/PropB_REAX_1_E4' */
32765
32766 /* Terminate for S-Function (rti_commonblock): '<S932>/S-Function1' incorporates:
32767 * Constant: '<S930>/Constant'
32768 * Constant: '<S930>/Constant1'
32769 */
32770
32771 /* dSPACE RTICAN TX Message Block: "PropB_REAX_1_E4" Id:419426276 */
32772 {
32773 /* ... Set the message into sleep mode */
32774 while ((rtican_type1_tq_error[2][4] = can_tp1_msg_sleep
32775 (can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0X18FFEFE4])) ==
32776 DSMCOM_BUFFER_OVERFLOW) ;
32777 }
32778
32779 /* End of Terminate for SubSystem: '<S930>/PropB_REAX_1_E4' */
32780
32781 /* Terminate for Enabled SubSystem: '<S939>/VDC2_0B' */
32782
32783 /* Terminate for S-Function (rti_commonblock): '<S940>/S-Function1' */
32784
32785 /* dSPACE RTICAN TX Message Block: "VDC2_0B" Id:418384139 */
32786 {
32787 /* ... Set the message into sleep mode */
32788 while ((rtican_type1_tq_error[2][4] = can_tp1_msg_sleep
32789 (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B])) ==
32790 DSMCOM_BUFFER_OVERFLOW) ;
32791 }
32792
32793 /* End of Terminate for SubSystem: '<S939>/VDC2_0B' */
32794
32795 /* End of Terminate for SubSystem: '<S815>/CAN_TX_10ms' */
32796
32797 /* Terminate for Atomic SubSystem: '<S815>/CAN_TX_20ms' */
32798
32799 /* Terminate for Enabled SubSystem: '<S984>/PropB_XBR_B3' */
32800
32801 /* Terminate for S-Function (rti_commonblock): '<S985>/S-Function1' */
32802
32803 /* dSPACE RTICAN TX Message Block: "PropB_XBR_B3" Id:218038707 */
32804 {
32805 /* ... Set the message into sleep mode */
32806 while ((rtican_type1_tq_error[1][2] = can_tp1_msg_sleep
32807 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3])) ==
32808 DSMCOM_BUFFER_OVERFLOW) ;
32809 }
32810
32811 /* End of Terminate for SubSystem: '<S984>/PropB_XBR_B3' */
32812
32813 /* Terminate for Enabled SubSystem: '<S986>/PropB_Bendix_2C2_XPR' */
32814
32815 /* Terminate for S-Function (rti_commonblock): '<S987>/S-Function1' */
32816
32817 /* dSPACE RTICAN TX Message Block: "PropB_Bendix_2C2_XPR" Id:218060389 */
32818 {
32819 /* ... Set the message into sleep mode */
32820 while ((rtican_type1_tq_error[1][2] = can_tp1_msg_sleep
32821 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665])) ==
32822 DSMCOM_BUFFER_OVERFLOW) ;
32823 }
32824
32825 /* End of Terminate for SubSystem: '<S986>/PropB_Bendix_2C2_XPR' */
32826
32827 /* Terminate for Enabled SubSystem: '<S994>/Std_OdometryData' */
32828
32829 /* Terminate for S-Function (rti_commonblock): '<S995>/S-Function1' */
32830
32831 /* dSPACE RTICAN TX Message Block: "Std_OdometryData" Id:10 */
32832 {
32833 /* ... Set the message into sleep mode */
32834 while ((rtican_type1_tq_error[2][0] = can_tp1_msg_sleep
32835 (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA])) ==
32836 DSMCOM_BUFFER_OVERFLOW) ;
32837 }
32838
32839 /* End of Terminate for SubSystem: '<S994>/Std_OdometryData' */
32840
32841 /* End of Terminate for SubSystem: '<S815>/CAN_TX_20ms' */
32842
32843 /* Terminate for Atomic SubSystem: '<S815>/CAN_TX_5000ms' */
32844
32845 /* Terminate for Enabled SubSystem: '<S1009>/RQST_13_E4' */
32846
32847 /* Terminate for S-Function (rti_commonblock): '<S1011>/S-Function1' */
32848
32849 /* dSPACE RTICAN TX Message Block: "RQST_13_E4" Id:417993700 */
32850 {
32851 /* ... Set the message into sleep mode */
32852 while ((rtican_type1_tq_error[2][3] = can_tp1_msg_sleep
32853 (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4])) ==
32854 DSMCOM_BUFFER_OVERFLOW) ;
32855 }
32856
32857 /* End of Terminate for SubSystem: '<S1009>/RQST_13_E4' */
32858
32859 /* End of Terminate for SubSystem: '<S815>/CAN_TX_5000ms' */
32860
32861 /* Terminate for Atomic SubSystem: '<S815>/CAN_TX_50ms' */
32862
32863 /* Terminate for Enabled SubSystem: '<S1020>/CCVS1_E3' */
32864
32865 /* Terminate for S-Function (rti_commonblock): '<S1022>/S-Function1' */
32866
32867 /* dSPACE RTICAN TX Message Block: "CCVS1_E3" Id:419361251 */
32868 {
32869 /* ... Set the message into sleep mode */
32870 while ((rtican_type1_tq_error[1][3] = can_tp1_msg_sleep
32871 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3])) ==
32872 DSMCOM_BUFFER_OVERFLOW) ;
32873 }
32874
32875 /* End of Terminate for SubSystem: '<S1020>/CCVS1_E3' */
32876
32877 /* Terminate for Enabled SubSystem: '<S1021>/TC1_03_05' */
32878
32879 /* Terminate for S-Function (rti_commonblock): '<S1023>/S-Function1' */
32880
32881 /* dSPACE RTICAN TX Message Block: "TC1_03_05" Id:201392901 */
32882 {
32883 /* ... Set the message into sleep mode */
32884 while ((rtican_type1_tq_error[0][0] = can_tp1_msg_sleep
32885 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305])) ==
32886 DSMCOM_BUFFER_OVERFLOW) ;
32887 }
32888
32889 /* End of Terminate for SubSystem: '<S1021>/TC1_03_05' */
32890
32891 /* End of Terminate for SubSystem: '<S815>/CAN_TX_50ms' */
32892
32893 /* Terminate for Enabled SubSystem: '<S1033>/Std_SystemTime_01' */
32894
32895 /* Terminate for S-Function (rti_commonblock): '<S1035>/S-Function1' incorporates:
32896 * Constant: '<S1033>/Constant'
32897 * Constant: '<S1033>/Constant1'
32898 */
32899
32900 /* dSPACE RTICAN TX Message Block: "Std_SystemTime_01" Id:5 */
32901 {
32902 /* ... Set the message into sleep mode */
32903 while ((rtican_type1_tq_error[2][0] = can_tp1_msg_sleep
32904 (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X5])) ==
32905 DSMCOM_BUFFER_OVERFLOW) ;
32906 }
32907
32908 /* End of Terminate for SubSystem: '<S1033>/Std_SystemTime_01' */
32909
32910 /* Terminate for Triggered SubSystem: '<S1028>/CAN_TYPE1_TX_M1_C1' */
32911
32912 /* Terminate for S-Function (rti_commonblock): '<S1030>/S-Function1' */
32913
32914 /* dSPACE RTICAN TX Message Block: "TX Message" Id:418184965 */
32915 {
32916 /* ... Set the message into sleep mode */
32917 while ((rtican_type1_tq_error[0][1] = can_tp1_msg_sleep
32918 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05])) ==
32919 DSMCOM_BUFFER_OVERFLOW) ;
32920 }
32921
32922 /* End of Terminate for SubSystem: '<S1028>/CAN_TYPE1_TX_M1_C1' */
32923
32924 /* Terminate for Triggered SubSystem: '<S1029>/CAN_TYPE1_TX_M1_C1' */
32925
32926 /* Terminate for S-Function (rti_commonblock): '<S1031>/S-Function1' */
32927
32928 /* dSPACE RTICAN TX Message Block: "TX Message" Id:418119429 */
32929 {
32930 /* ... Set the message into sleep mode */
32931 while ((rtican_type1_tq_error[0][1] = can_tp1_msg_sleep
32932 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05])) ==
32933 DSMCOM_BUFFER_OVERFLOW) ;
32934 }
32935
32936 /* End of Terminate for SubSystem: '<S1029>/CAN_TYPE1_TX_M1_C1' */
32937
32938 /* Terminate for S-Function (rti_commonblock): '<S1036>/S-Function1' */
32939
32940 /* disable digital output channel 4 on port 1 *
32941 * (set to high-impedance), when the simulation terminates */
32942 dio_tp4_digout_init(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH4,
32943 DIO_TP4_LS_DISABLE, DIO_TP4_HS_DISABLE);
32944
32945 /* Terminate for S-Function (rti_commonblock): '<S1037>/S-Function1' */
32946
32947 /* disable digital output channel 2 on port 1 *
32948 * (set to high-impedance), when the simulation terminates */
32949 dio_tp4_digout_init(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH2,
32950 DIO_TP4_LS_DISABLE, DIO_TP4_HS_DISABLE);
32951
32952 /* Terminate for S-Function (rti_commonblock): '<S1038>/S-Function1' */
32953
32954 /* disable digital output channel 1 on port 1 *
32955 * (set to high-impedance), when the simulation terminates */
32956 dio_tp4_digout_init(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH1,
32957 DIO_TP4_LS_DISABLE, DIO_TP4_HS_DISABLE);
32958
32959 /* Terminate for S-Function (rti_commonblock): '<S1039>/S-Function1' */
32960
32961 /* disable digital output channel 3 on port 1 *
32962 * (set to high-impedance), when the simulation terminates */
32963 dio_tp4_digout_init(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH3,
32964 DIO_TP4_LS_DISABLE, DIO_TP4_HS_DISABLE);
32965
32966 /* Terminate for S-Function (rti_commonblock): '<S1040>/S-Function1' */
32967
32968 /* disable digital output channel 1 on port 2 *
32969 * (set to high-impedance), when the simulation terminates */
32970 dio_tp4_pwm_init(DIO_TP4_1_MODULE_ADDR, 2, DIO_TP4_MASK_CH1,
32971 DIO_TP4_LS_DISABLE, DIO_TP4_HS_DISABLE, DIO_TP4_TIMING_RANGE2,
32972 DIO_TP4_PWM);
32973
32974 /* Terminate for S-Function (rti_commonblock): '<S1041>/S-Function1' */
32975
32976 /* disable digital output channel 2 on port 2 *
32977 * (set to high-impedance), when the simulation terminates */
32978 dio_tp4_pwm_init(DIO_TP4_1_MODULE_ADDR, 2, DIO_TP4_MASK_CH2,
32979 DIO_TP4_LS_DISABLE, DIO_TP4_HS_DISABLE, DIO_TP4_TIMING_RANGE2,
32980 DIO_TP4_PWM);
32981
32982 /* Terminate for S-Function (rti_commonblock): '<S394>/S-Function1' incorporates:
32983 * SubSystem: '<S386>/Background_Task'
32984 */
32985 L4_MAB_Background_Task_Term();
32986
32987 /* End of Terminate for S-Function (rti_commonblock): '<S394>/S-Function1' */
32988
32989 /* Terminate for S-Function (rti_commonblock): '<S400>/S-Function1' incorporates:
32990 * SubSystem: '<S386>/Interrupt_Task'
32991 */
32992 L4_MABX_Interrupt_Task_Term();
32993
32994 /* End of Terminate for S-Function (rti_commonblock): '<S400>/S-Function1' */
32995
32996 /* Terminate for S-Function (rti_commonblock): '<S446>/S-Function1' */
32997
32998 /* dSPACE RTICAN STD Srvc-Message Block */
32999 {
33000 /* ... Set the message into sleep mode */
33001 while ((rtican_type1_tq_error[0][0] = can_tp1_msg_sleep
33002 (CANTP1_RX_SPMSG_M1_C1_STD)) == DSMCOM_BUFFER_OVERFLOW) ;
33003 }
33004
33005 /* dSPACE RTICAN XTD Srvc-Message Block */
33006 {
33007 /* ... Set the message into sleep mode */
33008 while ((rtican_type1_tq_error[0][1] = can_tp1_msg_sleep
33009 (CANTP1_RX_SPMSG_M1_C1_XTD)) == DSMCOM_BUFFER_OVERFLOW) ;
33010 }
33011
33012 /* Terminate for S-Function (rti_commonblock): '<S447>/S-Function1' */
33013
33014 /* dSPACE RTICAN STD Srvc-Message Block */
33015 {
33016 /* ... Set the message into sleep mode */
33017 while ((rtican_type1_tq_error[0][0] = can_tp1_msg_sleep
33018 (CANTP1_RX_SPMSG_M1_C2_STD)) == DSMCOM_BUFFER_OVERFLOW) ;
33019 }
33020
33021 /* dSPACE RTICAN XTD Srvc-Message Block */
33022 {
33023 /* ... Set the message into sleep mode */
33024 while ((rtican_type1_tq_error[0][1] = can_tp1_msg_sleep
33025 (CANTP1_RX_SPMSG_M1_C2_XTD)) == DSMCOM_BUFFER_OVERFLOW) ;
33026 }
33027
33028 /* Terminate for S-Function (rti_commonblock): '<S448>/S-Function1' */
33029
33030 /* dSPACE RTICAN STD Srvc-Message Block */
33031 {
33032 /* ... Set the message into sleep mode */
33033 while ((rtican_type1_tq_error[1][0] = can_tp1_msg_sleep
33034 (CANTP1_RX_SPMSG_M2_C1_STD)) == DSMCOM_BUFFER_OVERFLOW) ;
33035 }
33036
33037 /* dSPACE RTICAN XTD Srvc-Message Block */
33038 {
33039 /* ... Set the message into sleep mode */
33040 while ((rtican_type1_tq_error[1][1] = can_tp1_msg_sleep
33041 (CANTP1_RX_SPMSG_M2_C1_XTD)) == DSMCOM_BUFFER_OVERFLOW) ;
33042 }
33043
33044 /* Terminate for S-Function (rti_commonblock): '<S449>/S-Function1' */
33045
33046 /* dSPACE RTICAN STD Srvc-Message Block */
33047 {
33048 /* ... Set the message into sleep mode */
33049 while ((rtican_type1_tq_error[1][0] = can_tp1_msg_sleep
33050 (CANTP1_RX_SPMSG_M2_C2_STD)) == DSMCOM_BUFFER_OVERFLOW) ;
33051 }
33052
33053 /* dSPACE RTICAN XTD Srvc-Message Block */
33054 {
33055 /* ... Set the message into sleep mode */
33056 while ((rtican_type1_tq_error[1][1] = can_tp1_msg_sleep
33057 (CANTP1_RX_SPMSG_M2_C2_XTD)) == DSMCOM_BUFFER_OVERFLOW) ;
33058 }
33059
33060 /* Terminate for S-Function (rti_commonblock): '<S450>/S-Function1' */
33061
33062 /* dSPACE RTICAN STD Srvc-Message Block */
33063 {
33064 /* ... Set the message into sleep mode */
33065 while ((rtican_type1_tq_error[2][0] = can_tp1_msg_sleep
33066 (CANTP1_RX_SPMSG_M3_C1_STD)) == DSMCOM_BUFFER_OVERFLOW) ;
33067 }
33068
33069 /* dSPACE RTICAN XTD Srvc-Message Block */
33070 {
33071 /* ... Set the message into sleep mode */
33072 while ((rtican_type1_tq_error[2][1] = can_tp1_msg_sleep
33073 (CANTP1_RX_SPMSG_M3_C1_XTD)) == DSMCOM_BUFFER_OVERFLOW) ;
33074 }
33075
33076 /* Terminate for S-Function (rti_commonblock): '<S451>/S-Function1' */
33077
33078 /* dSPACE RTICAN STD Srvc-Message Block */
33079 {
33080 /* ... Set the message into sleep mode */
33081 while ((rtican_type1_tq_error[2][0] = can_tp1_msg_sleep
33082 (CANTP1_RX_SPMSG_M3_C2_STD)) == DSMCOM_BUFFER_OVERFLOW) ;
33083 }
33084
33085 /* dSPACE RTICAN XTD Srvc-Message Block */
33086 {
33087 /* ... Set the message into sleep mode */
33088 while ((rtican_type1_tq_error[2][1] = can_tp1_msg_sleep
33089 (CANTP1_RX_SPMSG_M3_C2_XTD)) == DSMCOM_BUFFER_OVERFLOW) ;
33090 }
33091}
33092